diff --git a/assets/openapi.json b/assets/openapi.json
index 64dc53c0..2dc78741 100644
--- a/assets/openapi.json
+++ b/assets/openapi.json
@@ -7606,33 +7606,34 @@
]
},
"UserRelationsResponse": {
- "type": "object",
- "properties": {
- "object": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "username": {
- "type": "string"
- },
- "avatar": {
- "type": "string"
- },
- "discriminator": {
- "type": "string"
- },
- "public_flags": {
- "type": "integer"
- }
+ "type": "array",
+ "items": {
+ "additionalProperties": false,
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
},
- "additionalProperties": false
- }
- },
- "required": [
- "object"
- ]
+ "username": {
+ "type": "string"
+ },
+ "discriminator": {
+ "type": "string"
+ },
+ "avatar": {
+ "type": "string"
+ },
+ "public_flags": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "discriminator",
+ "id",
+ "public_flags",
+ "username"
+ ]
+ }
},
"WebAuthnCreateResponse": {
"type": "object",
diff --git a/assets/schemas.json b/assets/schemas.json
index 2c2abe8f..dc25cacd 100644
--- a/assets/schemas.json
+++ b/assets/schemas.json
@@ -485211,34 +485211,34 @@
"$schema": "http://json-schema.org/draft-07/schema#"
},
"UserRelationsResponse": {
- "type": "object",
- "properties": {
- "object": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "username": {
- "type": "string"
- },
- "avatar": {
- "type": "string"
- },
- "discriminator": {
- "type": "string"
- },
- "public_flags": {
- "type": "integer"
- }
+ "type": "array",
+ "items": {
+ "additionalProperties": false,
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
},
- "additionalProperties": false
- }
+ "username": {
+ "type": "string"
+ },
+ "discriminator": {
+ "type": "string"
+ },
+ "avatar": {
+ "type": "string"
+ },
+ "public_flags": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "discriminator",
+ "id",
+ "public_flags",
+ "username"
+ ]
},
- "additionalProperties": false,
- "required": [
- "object"
- ],
"definitions": {
"ChannelPermissionOverwriteType": {
"enum": [
diff --git a/src/api/routes/users/#id/relationships.ts b/src/api/routes/users/#id/relationships.ts
index 7accad3b..3737ca00 100644
--- a/src/api/routes/users/#id/relationships.ts
+++ b/src/api/routes/users/#id/relationships.ts
@@ -17,7 +17,7 @@
*/
import { route } from "@spacebar/api";
-import { User } from "@spacebar/util";
+import { User, UserRelationsResponse } from "@spacebar/util";
import { Request, Response, Router } from "express";
const router: Router = Router();
@@ -33,7 +33,8 @@ router.get(
},
}),
async (req: Request, res: Response) => {
- const mutual_relations: object[] = [];
+ const mutual_relations: UserRelationsResponse = [];
+
const requested_relations = await User.findOneOrFail({
where: { id: req.params.id },
relations: ["relationships"],
diff --git a/src/util/schemas/UserRelationsResponse.ts b/src/util/schemas/UserRelationsResponse.ts
deleted file mode 100644
index 38507420..00000000
--- a/src/util/schemas/UserRelationsResponse.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
- Copyright (C) 2023 Spacebar and Spacebar Contributors
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published
- by the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-export interface UserRelationsResponse {
- object: {
- id?: string;
- username?: string;
- avatar?: string;
- discriminator?: string;
- public_flags?: number;
- };
-}
diff --git a/src/util/schemas/responses/UserRelationsResponse.ts b/src/util/schemas/responses/UserRelationsResponse.ts
index 1ec15eca..e784cafb 100644
--- a/src/util/schemas/responses/UserRelationsResponse.ts
+++ b/src/util/schemas/responses/UserRelationsResponse.ts
@@ -1,9 +1,7 @@
-export interface UserRelationsResponse {
- object: {
- id?: string;
- username?: string;
- avatar?: string;
- discriminator?: string;
- public_flags?: number;
- };
-}
+import { User } from "@spacebar/util";
+
+export type UserRelationsResponse = (Pick<User, "id"> &
+ Pick<User, "username"> &
+ Pick<User, "discriminator"> &
+ Pick<User, "avatar"> &
+ Pick<User, "public_flags">)[];
|