From 64bbfc210732ff439ffbd68a4c6e05982a9d5c39 Mon Sep 17 00:00:00 2001 From: tamaina Date: Sun, 4 Jun 2023 17:22:53 +0000 Subject: [PATCH] wip --- .../src/server/api/endpoints/auth/accept.ts | 2 +- .../server/api/endpoints/blocking/create.ts | 58 ++----------------- packages/misskey-js/src/endpoints.ts | 56 ++++++++++++++++-- 3 files changed, 59 insertions(+), 57 deletions(-) diff --git a/packages/backend/src/server/api/endpoints/auth/accept.ts b/packages/backend/src/server/api/endpoints/auth/accept.ts index fd2cb215a2..f904c9b437 100644 --- a/packages/backend/src/server/api/endpoints/auth/accept.ts +++ b/packages/backend/src/server/api/endpoints/auth/accept.ts @@ -29,7 +29,7 @@ export default class extends Endpoint<'auth/accept'> { .findOneBy({ token: ps.token }); if (session == null) { - throw new ApiError(meta.errors.noSuchSession); + throw new ApiError(this.meta.errors.noSuchSession); } const accessToken = secureRndstr(32, true); diff --git a/packages/backend/src/server/api/endpoints/blocking/create.ts b/packages/backend/src/server/api/endpoints/blocking/create.ts index d9ba99f209..2c2eea809d 100644 --- a/packages/backend/src/server/api/endpoints/blocking/create.ts +++ b/packages/backend/src/server/api/endpoints/blocking/create.ts @@ -8,56 +8,10 @@ import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; import { ApiError } from '../../error.js'; -export const meta = { - tags: ['account'], - - limit: { - duration: ms('1hour'), - max: 20, - }, - - requireCredential: true, - - kind: 'write:blocks', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '7cc4f851-e2f1-4621-9633-ec9e1d00c01e', - }, - - blockeeIsYourself: { - message: 'Blockee is yourself.', - code: 'BLOCKEE_IS_YOURSELF', - id: '88b19138-f28d-42c0-8499-6a31bbd0fdc6', - }, - - alreadyBlocking: { - message: 'You are already blocking that user.', - code: 'ALREADY_BLOCKING', - id: '787fed64-acb9-464a-82eb-afbd745b9614', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailedNotMe', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - // eslint-disable-next-line import/no-default-export @Injectable() -export default class extends Endpoint { +export default class extends Endpoint<'blocking/create'> { + name = 'blocking/create' as const; constructor( @Inject(DI.usersRepository) private usersRepository: UsersRepository, @@ -69,17 +23,17 @@ export default class extends Endpoint { private getterService: GetterService, private userBlockingService: UserBlockingService, ) { - super(meta, paramDef, async (ps, me) => { + super(async (ps, me) => { const blocker = await this.usersRepository.findOneByOrFail({ id: me.id }); // 自分自身 if (me.id === ps.userId) { - throw new ApiError(meta.errors.blockeeIsYourself); + throw new ApiError(this.meta.errors.blockeeIsYourself); } // Get blockee const blockee = await this.getterService.getUser(ps.userId).catch(err => { - if (err.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + if (err.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(this.meta.errors.noSuchUser); throw err; }); @@ -90,7 +44,7 @@ export default class extends Endpoint { }); if (exist != null) { - throw new ApiError(meta.errors.alreadyBlocking); + throw new ApiError(this.meta.errors.alreadyBlocking); } await this.userBlockingService.block(blocker, blockee); diff --git a/packages/misskey-js/src/endpoints.ts b/packages/misskey-js/src/endpoints.ts index 884ecfde46..96e3714925 100644 --- a/packages/misskey-js/src/endpoints.ts +++ b/packages/misskey-js/src/endpoints.ts @@ -2450,11 +2450,11 @@ export const endpoints = { }, 'auth/accept': { tags: ['auth'], - + requireCredential: true, - + secure: true, - + errors: { noSuchSession: { message: 'No such session.', @@ -2473,7 +2473,55 @@ export const endpoints = { }, res: undefined, }], - } + }, + //#endregion + + //#region blocking + 'blocking/create': { + tags: ['account'], + + limit: { + duration: ms('1hour'), + max: 20, + }, + + requireCredential: true, + + kind: 'write:blocks', + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '7cc4f851-e2f1-4621-9633-ec9e1d00c01e', + }, + + blockeeIsYourself: { + message: 'Blockee is yourself.', + code: 'BLOCKEE_IS_YOURSELF', + id: '88b19138-f28d-42c0-8499-6a31bbd0fdc6', + }, + + alreadyBlocking: { + message: 'You are already blocking that user.', + code: 'ALREADY_BLOCKING', + id: '787fed64-acb9-464a-82eb-afbd745b9614', + }, + }, + + defines: [{ + req: { + type: 'object', + properties: { + userId: { type: 'string', format: 'misskey:id' }, + }, + required: ['userId'], + }, + res: { + $ref: 'https://misskey-hub.net/api/schemas/UserDetailedNotMe', + }, + }], + }, //#endregion } as const satisfies { [x: string]: IEndpointMeta; };