diff options
author | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2023-04-19 01:24:51 +1000 |
---|---|---|
committer | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2023-04-19 01:24:51 +1000 |
commit | 4c6b1e8e16a1f44dc7c5f9abd74c0615d0e4e51c (patch) | |
tree | f9d9858cc5e2ffab76aa2f15d8d99a2facd35902 | |
parent | Enforce theme_colors to be ints (diff) | |
download | server-4c6b1e8e16a1f44dc7c5f9abd74c0615d0e4e51c.tar.xz |
Fix UserRelationsResponse schema
-rw-r--r-- | assets/openapi.json | 53 | ||||
-rw-r--r-- | assets/schemas.json | 52 | ||||
-rw-r--r-- | src/api/routes/users/#id/relationships.ts | 5 | ||||
-rw-r--r-- | src/util/schemas/UserRelationsResponse.ts | 27 | ||||
-rw-r--r-- | src/util/schemas/responses/UserRelationsResponse.ts | 16 |
5 files changed, 63 insertions, 90 deletions
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">)[]; |