diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-09 11:54:49 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-09 11:54:49 +0900 |
| commit | a558767b7ae8b1845377e5f01ebf3505cd0e9c56 (patch) | |
| tree | 1695e487ac0d0e6fa73da74eb7b9a1fbbed96961 /packages/backend/src/server/api | |
| parent | Merge branch 'develop' (diff) | |
| parent | 13.5.3 (diff) | |
| download | misskey-a558767b7ae8b1845377e5f01ebf3505cd0e9c56.tar.gz misskey-a558767b7ae8b1845377e5f01ebf3505cd0e9c56.tar.bz2 misskey-a558767b7ae8b1845377e5f01ebf3505cd0e9c56.zip | |
Merge branch 'develop'
Diffstat (limited to 'packages/backend/src/server/api')
9 files changed, 21 insertions, 34 deletions
diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts index a9c34e363a..1f8915ecca 100644 --- a/packages/backend/src/server/api/RateLimiterService.ts +++ b/packages/backend/src/server/api/RateLimiterService.ts @@ -34,7 +34,7 @@ export class RateLimiterService { const min = (): void => { const minIntervalLimiter = new Limiter({ id: `${actor}:${limitation.key}:min`, - duration: limitation.minInterval * factor, + duration: limitation.minInterval! * factor, max: 1, db: this.redisClient, }); @@ -62,8 +62,8 @@ export class RateLimiterService { const max = (): void => { const limiter = new Limiter({ id: `${actor}:${limitation.key}`, - duration: limitation.duration * factor, - max: limitation.max / factor, + duration: limitation.duration! * factor, + max: limitation.max! / factor, db: this.redisClient, }); diff --git a/packages/backend/src/server/api/SigninApiService.ts b/packages/backend/src/server/api/SigninApiService.ts index 10f8423d44..d490097dea 100644 --- a/packages/backend/src/server/api/SigninApiService.ts +++ b/packages/backend/src/server/api/SigninApiService.ts @@ -10,9 +10,9 @@ import { getIpHash } from '@/misc/get-ip-hash.js'; import type { ILocalUser } from '@/models/entities/User.js'; import { IdService } from '@/core/IdService.js'; import { TwoFactorAuthenticationService } from '@/core/TwoFactorAuthenticationService.js'; +import { bindThis } from '@/decorators.js'; import { RateLimiterService } from './RateLimiterService.js'; import { SigninService } from './SigninService.js'; -import { bindThis } from '@/decorators.js'; import type { FastifyRequest, FastifyReply } from 'fastify'; @Injectable() @@ -131,7 +131,7 @@ export class SigninApiService { createdAt: new Date(), userId: user.id, ip: request.ip, - headers: request.headers, + headers: request.headers as any, success: false, }); diff --git a/packages/backend/src/server/api/SigninService.ts b/packages/backend/src/server/api/SigninService.ts index 89a8a9ff16..c78d9f85cd 100644 --- a/packages/backend/src/server/api/SigninService.ts +++ b/packages/backend/src/server/api/SigninService.ts @@ -25,7 +25,7 @@ export class SigninService { } @bindThis - public signin(request: FastifyRequest, reply: FastifyReply, user: ILocalUser, redirect = false) { + public signin(request: FastifyRequest, reply: FastifyReply, user: ILocalUser) { setImmediate(async () => { // Append signin history const record = await this.signinsRepository.insert({ @@ -33,7 +33,7 @@ export class SigninService { createdAt: new Date(), userId: user.id, ip: request.ip, - headers: request.headers, + headers: request.headers as any, success: true, }).then(x => this.signinsRepository.findOneByOrFail(x.identifiers[0])); @@ -41,25 +41,11 @@ export class SigninService { this.globalEventService.publishMainStream(user.id, 'signin', await this.signinEntityService.pack(record)); }); - if (redirect) { - //#region Cookie - reply.setCookie('igi', user.token!, { - path: '/', - // SEE: https://github.com/koajs/koa/issues/974 - // When using a SSL proxy it should be configured to add the "X-Forwarded-Proto: https" header - secure: this.config.url.startsWith('https'), - httpOnly: false, - }); - //#endregion - - reply.redirect(this.config.url); - } else { - reply.code(200); - return { - id: user.id, - i: user.token, - }; - } + reply.code(200); + return { + id: user.id, + i: user.token, + }; } } diff --git a/packages/backend/src/server/api/SignupApiService.ts b/packages/backend/src/server/api/SignupApiService.ts index 4b676bb8b9..ffd7e203ea 100644 --- a/packages/backend/src/server/api/SignupApiService.ts +++ b/packages/backend/src/server/api/SignupApiService.ts @@ -146,6 +146,7 @@ export class SignupApiService { `To complete signup, please click this link: ${link}`); reply.code(204); + return; } else { try { const { account, secret } = await this.signupService.signup({ @@ -162,7 +163,7 @@ export class SignupApiService { token: secret, }; } catch (err) { - throw new FastifyReplyError(400, err); + throw new FastifyReplyError(400, typeof err === 'string' ? err : (err as Error).toString()); } } } @@ -195,7 +196,7 @@ export class SignupApiService { return this.signinService.signin(request, reply, account as ILocalUser); } catch (err) { - throw new FastifyReplyError(400, err); + throw new FastifyReplyError(400, typeof err === 'string' ? err : (err as Error).toString()); } } } diff --git a/packages/backend/src/server/api/endpoints/admin/roles/create.ts b/packages/backend/src/server/api/endpoints/admin/roles/create.ts index 1a2a9fb747..df60c6be94 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/create.ts @@ -20,7 +20,7 @@ export const paramDef = { description: { type: 'string' }, color: { type: 'string', nullable: true }, iconUrl: { type: 'string', nullable: true }, - target: { type: 'string' }, + target: { type: 'string', enum: ['manual', 'conditional'] }, condFormula: { type: 'object' }, isPublic: { type: 'boolean' }, isModerator: { type: 'boolean' }, diff --git a/packages/backend/src/server/api/endpoints/admin/roles/update.ts b/packages/backend/src/server/api/endpoints/admin/roles/update.ts index c9f4a9fed8..b939ccdbf9 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/update.ts @@ -28,7 +28,7 @@ export const paramDef = { description: { type: 'string' }, color: { type: 'string', nullable: true }, iconUrl: { type: 'string', nullable: true }, - target: { type: 'string' }, + target: { type: 'string', enum: ['manual', 'conditional'] }, condFormula: { type: 'object' }, isPublic: { type: 'boolean' }, isModerator: { type: 'boolean' }, diff --git a/packages/backend/src/server/api/endpoints/charts/user/pv.ts b/packages/backend/src/server/api/endpoints/charts/user/pv.ts index c920e0f57d..33652c3adf 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/pv.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/pv.ts @@ -2,7 +2,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; import PerUserPvChart from '@/core/chart/charts/per-user-pv.js'; -import { schema } from '@/core/chart/charts/entities/per-user-notes.js'; +import { schema } from '@/core/chart/charts/entities/per-user-pv.js'; export const meta = { tags: ['charts', 'users'], diff --git a/packages/backend/src/server/api/endpoints/endpoint.ts b/packages/backend/src/server/api/endpoints/endpoint.ts index a337a05f8c..13b91685a4 100644 --- a/packages/backend/src/server/api/endpoints/endpoint.ts +++ b/packages/backend/src/server/api/endpoints/endpoint.ts @@ -27,7 +27,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { return { params: Object.entries(ep.params.properties ?? {}).map(([k, v]) => ({ name: k, - type: v.type.charAt(0).toUpperCase() + v.type.slice(1), + type: v.type ? v.type.charAt(0).toUpperCase() + v.type.slice(1) : 'string', })), }; }); diff --git a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts index 52ae5475b6..d7109c6953 100644 --- a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts +++ b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts @@ -1,7 +1,7 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; import { DI } from '@/di-symbols.js'; -import { AchievementService } from '@/core/AchievementService.js'; +import { AchievementService, ACHIEVEMENT_TYPES } from '@/core/AchievementService.js'; export const meta = { requireCredential: true, @@ -10,7 +10,7 @@ export const meta = { export const paramDef = { type: 'object', properties: { - name: { type: 'string' }, + name: { type: 'string', enum: ACHIEVEMENT_TYPES }, }, required: ['name'], } as const; |