summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/messaging
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-19 14:05:32 +0900
committerGitHub <noreply@github.com>2022-02-19 14:05:32 +0900
commit510de87607283d4d49239b1d14026a577299c99e (patch)
treed56933864d6cf07751e2e2a11a373ee752338c80 /packages/backend/src/server/api/endpoints/messaging
parentupdate deps (diff)
downloadsharkey-510de87607283d4d49239b1d14026a577299c99e.tar.gz
sharkey-510de87607283d4d49239b1d14026a577299c99e.tar.bz2
sharkey-510de87607283d4d49239b1d14026a577299c99e.zip
refactor: use ajv instead of cafy (#8324)
* wip * wip * Update abuse-user-reports.ts * Update files.ts * Update list-remote.ts * Update list.ts * Update show-users.ts * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * Update update.ts * Update search.ts * Update reactions.ts * Update search.ts * wip * wip * wip * wip * Update update.ts * Update relation.ts * Update available.ts * wip * wip * wip * Update packages/backend/src/server/api/define.ts Co-authored-by: Johann150 <johann.galle@protonmail.com> * Update define.ts * Update define.ts * typo * wip * wip * wip * wip * wip * wip * wip * wip * Update update.ts * wip * Update signup.ts * Update call.ts * minimum for limit * type * remove needless annotation * wip * Update signup.ts * wip * wip * fix * Update create.ts Co-authored-by: Johann150 <johann.galle@protonmail.com>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/messaging')
-rw-r--r--packages/backend/src/server/api/endpoints/messaging/history.ts26
-rw-r--r--packages/backend/src/server/api/endpoints/messaging/messages.ts49
-rw-r--r--packages/backend/src/server/api/endpoints/messaging/messages/create.ts33
-rw-r--r--packages/backend/src/server/api/endpoints/messaging/messages/delete.ts18
-rw-r--r--packages/backend/src/server/api/endpoints/messaging/messages/read.ts18
5 files changed, 57 insertions, 87 deletions
diff --git a/packages/backend/src/server/api/endpoints/messaging/history.ts b/packages/backend/src/server/api/endpoints/messaging/history.ts
index 5ac49cf96b..5c1c040cc3 100644
--- a/packages/backend/src/server/api/endpoints/messaging/history.ts
+++ b/packages/backend/src/server/api/endpoints/messaging/history.ts
@@ -1,4 +1,3 @@
-import $ from 'cafy';
import define from '../../define';
import { MessagingMessage } from '@/models/entities/messaging-message';
import { MessagingMessages, Mutings, UserGroupJoinings } from '@/models/index';
@@ -11,18 +10,6 @@ export const meta = {
kind: 'read:messaging',
- params: {
- limit: {
- validator: $.optional.num.range(1, 100),
- default: 10,
- },
-
- group: {
- validator: $.optional.bool,
- default: false,
- },
- },
-
res: {
type: 'array',
optional: false, nullable: false,
@@ -34,8 +21,17 @@ export const meta = {
},
} as const;
+const paramDef = {
+ type: 'object',
+ properties: {
+ limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },
+ group: { type: 'boolean', default: false },
+ },
+ required: [],
+} as const;
+
// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, user) => {
+export default define(meta, paramDef, async (ps, user) => {
const mute = await Mutings.find({
muterId: user.id,
});
@@ -50,7 +46,7 @@ export default define(meta, async (ps, user) => {
const history: MessagingMessage[] = [];
- for (let i = 0; i < ps.limit!; i++) {
+ for (let i = 0; i < ps.limit; i++) {
const found = ps.group
? history.map(m => m.groupId!)
: history.map(m => (m.userId === user.id) ? m.recipientId! : m.userId!);
diff --git a/packages/backend/src/server/api/endpoints/messaging/messages.ts b/packages/backend/src/server/api/endpoints/messaging/messages.ts
index 7dbddd80e2..ce477feac4 100644
--- a/packages/backend/src/server/api/endpoints/messaging/messages.ts
+++ b/packages/backend/src/server/api/endpoints/messaging/messages.ts
@@ -1,5 +1,3 @@
-import $ from 'cafy';
-import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { getUser } from '../../common/getters';
@@ -15,34 +13,6 @@ export const meta = {
kind: 'read:messaging',
- params: {
- userId: {
- validator: $.optional.type(ID),
- },
-
- groupId: {
- validator: $.optional.type(ID),
- },
-
- limit: {
- validator: $.optional.num.range(1, 100),
- default: 10,
- },
-
- sinceId: {
- validator: $.optional.type(ID),
- },
-
- untilId: {
- validator: $.optional.type(ID),
- },
-
- markAsRead: {
- validator: $.optional.bool,
- default: true,
- },
- },
-
res: {
type: 'array',
optional: false, nullable: false,
@@ -74,8 +44,21 @@ export const meta = {
},
} as const;
+const paramDef = {
+ type: 'object',
+ properties: {
+ userId: { type: 'string', format: 'misskey:id' },
+ groupId: { type: 'string', format: 'misskey:id' },
+ limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },
+ sinceId: { type: 'string', format: 'misskey:id' },
+ untilId: { type: 'string', format: 'misskey:id' },
+ markAsRead: { type: 'boolean', default: true },
+ },
+ required: [],
+} as const;
+
// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, user) => {
+export default define(meta, paramDef, async (ps, user) => {
if (ps.userId != null) {
// Fetch recipient (user)
const recipient = await getUser(ps.userId).catch(e => {
@@ -97,7 +80,7 @@ export default define(meta, async (ps, user) => {
.setParameter('meId', user.id)
.setParameter('recipientId', recipient.id);
- const messages = await query.take(ps.limit!).getMany();
+ const messages = await query.take(ps.limit).getMany();
// Mark all as read
if (ps.markAsRead) {
@@ -133,7 +116,7 @@ export default define(meta, async (ps, user) => {
const query = makePaginationQuery(MessagingMessages.createQueryBuilder('message'), ps.sinceId, ps.untilId)
.andWhere(`message.groupId = :groupId`, { groupId: recipientGroup.id });
- const messages = await query.take(ps.limit!).getMany();
+ const messages = await query.take(ps.limit).getMany();
// Mark all as read
if (ps.markAsRead) {
diff --git a/packages/backend/src/server/api/endpoints/messaging/messages/create.ts b/packages/backend/src/server/api/endpoints/messaging/messages/create.ts
index 5ec16f5e5a..60b1e2cdce 100644
--- a/packages/backend/src/server/api/endpoints/messaging/messages/create.ts
+++ b/packages/backend/src/server/api/endpoints/messaging/messages/create.ts
@@ -1,5 +1,3 @@
-import $ from 'cafy';
-import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { getUser } from '../../../common/getters';
@@ -15,24 +13,6 @@ export const meta = {
kind: 'write:messaging',
- params: {
- userId: {
- validator: $.optional.type(ID),
- },
-
- groupId: {
- validator: $.optional.type(ID),
- },
-
- text: {
- validator: $.optional.str.pipe(MessagingMessages.validateText),
- },
-
- fileId: {
- validator: $.optional.type(ID),
- },
- },
-
res: {
type: 'object',
optional: false, nullable: false,
@@ -84,8 +64,19 @@ export const meta = {
},
} as const;
+const paramDef = {
+ type: 'object',
+ properties: {
+ userId: { type: 'string', format: 'misskey:id' },
+ groupId: { type: 'string', format: 'misskey:id' },
+ text: { type: 'string', nullable: true, maxLength: 3000 },
+ fileId: { type: 'string', format: 'misskey:id' },
+ },
+ required: [],
+} as const;
+
// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, user) => {
+export default define(meta, paramDef, async (ps, user) => {
let recipientUser: User | undefined;
let recipientGroup: UserGroup | undefined;
diff --git a/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts b/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts
index 2975419cef..67ecd4a1e6 100644
--- a/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts
+++ b/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts
@@ -1,5 +1,3 @@
-import $ from 'cafy';
-import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import ms from 'ms';
import { ApiError } from '../../../error';
@@ -19,12 +17,6 @@ export const meta = {
minInterval: ms('1sec'),
},
- params: {
- messageId: {
- validator: $.type(ID),
- },
- },
-
errors: {
noSuchMessage: {
message: 'No such message.',
@@ -34,8 +26,16 @@ export const meta = {
},
} as const;
+const paramDef = {
+ type: 'object',
+ properties: {
+ messageId: { type: 'string', format: 'misskey:id' },
+ },
+ required: ['messageId'],
+} as const;
+
// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, user) => {
+export default define(meta, paramDef, async (ps, user) => {
const message = await MessagingMessages.findOne({
id: ps.messageId,
userId: user.id,
diff --git a/packages/backend/src/server/api/endpoints/messaging/messages/read.ts b/packages/backend/src/server/api/endpoints/messaging/messages/read.ts
index 42c3f49f6f..1d0ddaf98f 100644
--- a/packages/backend/src/server/api/endpoints/messaging/messages/read.ts
+++ b/packages/backend/src/server/api/endpoints/messaging/messages/read.ts
@@ -1,5 +1,3 @@
-import $ from 'cafy';
-import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { MessagingMessages } from '@/models/index';
@@ -12,12 +10,6 @@ export const meta = {
kind: 'write:messaging',
- params: {
- messageId: {
- validator: $.type(ID),
- },
- },
-
errors: {
noSuchMessage: {
message: 'No such message.',
@@ -27,8 +19,16 @@ export const meta = {
},
} as const;
+const paramDef = {
+ type: 'object',
+ properties: {
+ messageId: { type: 'string', format: 'misskey:id' },
+ },
+ required: ['messageId'],
+} as const;
+
// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, user) => {
+export default define(meta, paramDef, async (ps, user) => {
const message = await MessagingMessages.findOne(ps.messageId);
if (message == null) {