summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/api/endpoints.ts4
-rw-r--r--src/server/api/openapi/schemas.ts49
-rw-r--r--src/server/api/stream/channels/global-timeline.ts2
-rw-r--r--src/server/api/stream/channels/home-timeline.ts2
-rw-r--r--src/server/api/stream/channels/hybrid-timeline.ts5
-rw-r--r--src/server/api/stream/channels/local-timeline.ts5
-rw-r--r--src/server/api/stream/index.ts4
7 files changed, 14 insertions, 57 deletions
diff --git a/src/server/api/endpoints.ts b/src/server/api/endpoints.ts
index 640b14ed6a..6d9d2b0782 100644
--- a/src/server/api/endpoints.ts
+++ b/src/server/api/endpoints.ts
@@ -3,7 +3,7 @@ import { dirname } from 'path';
import { Context } from 'cafy';
import * as path from 'path';
import * as glob from 'glob';
-import { Schema } from '@/misc/schema';
+import { SimpleSchema } from '@/misc/simple-schema';
//const _filename = fileURLToPath(import.meta.url);
const _filename = __filename;
@@ -34,7 +34,7 @@ export interface IEndpointMeta {
};
};
- res?: Schema;
+ res?: SimpleSchema;
/**
* このエンドポイントにリクエストするのにユーザー情報が必須か否か
diff --git a/src/server/api/openapi/schemas.ts b/src/server/api/openapi/schemas.ts
index 5402dc6f48..12fc207c47 100644
--- a/src/server/api/openapi/schemas.ts
+++ b/src/server/api/openapi/schemas.ts
@@ -1,26 +1,4 @@
-import { packedUserSchema } from '@/models/repositories/user';
-import { Schema } from '@/misc/schema';
-import { packedNoteSchema } from '@/models/repositories/note';
-import { packedUserListSchema } from '@/models/repositories/user-list';
-import { packedAppSchema } from '@/models/repositories/app';
-import { packedMessagingMessageSchema } from '@/models/repositories/messaging-message';
-import { packedNotificationSchema } from '@/models/repositories/notification';
-import { packedDriveFileSchema } from '@/models/repositories/drive-file';
-import { packedDriveFolderSchema } from '@/models/repositories/drive-folder';
-import { packedFollowingSchema } from '@/models/repositories/following';
-import { packedMutingSchema } from '@/models/repositories/muting';
-import { packedBlockingSchema } from '@/models/repositories/blocking';
-import { packedNoteReactionSchema } from '@/models/repositories/note-reaction';
-import { packedHashtagSchema } from '@/models/repositories/hashtag';
-import { packedPageSchema } from '@/models/repositories/page';
-import { packedUserGroupSchema } from '@/models/repositories/user-group';
-import { packedNoteFavoriteSchema } from '@/models/repositories/note-favorite';
-import { packedChannelSchema } from '@/models/repositories/channel';
-import { packedAntennaSchema } from '@/models/repositories/antenna';
-import { packedClipSchema } from '@/models/repositories/clip';
-import { packedFederationInstanceSchema } from '@/models/repositories/federation-instance';
-import { packedQueueCountSchema } from '@/models/repositories/queue';
-import { packedGalleryPostSchema } from '@/models/repositories/gallery-post';
+import { refs, Schema } from '@/misc/schema';
export function convertSchemaToOpenApiSchema(schema: Schema) {
const res: any = schema;
@@ -72,26 +50,7 @@ export const schemas = {
required: ['error']
},
- User: convertSchemaToOpenApiSchema(packedUserSchema),
- UserList: convertSchemaToOpenApiSchema(packedUserListSchema),
- UserGroup: convertSchemaToOpenApiSchema(packedUserGroupSchema),
- App: convertSchemaToOpenApiSchema(packedAppSchema),
- MessagingMessage: convertSchemaToOpenApiSchema(packedMessagingMessageSchema),
- Note: convertSchemaToOpenApiSchema(packedNoteSchema),
- NoteReaction: convertSchemaToOpenApiSchema(packedNoteReactionSchema),
- NoteFavorite: convertSchemaToOpenApiSchema(packedNoteFavoriteSchema),
- Notification: convertSchemaToOpenApiSchema(packedNotificationSchema),
- DriveFile: convertSchemaToOpenApiSchema(packedDriveFileSchema),
- DriveFolder: convertSchemaToOpenApiSchema(packedDriveFolderSchema),
- Following: convertSchemaToOpenApiSchema(packedFollowingSchema),
- Muting: convertSchemaToOpenApiSchema(packedMutingSchema),
- Blocking: convertSchemaToOpenApiSchema(packedBlockingSchema),
- Hashtag: convertSchemaToOpenApiSchema(packedHashtagSchema),
- Page: convertSchemaToOpenApiSchema(packedPageSchema),
- Channel: convertSchemaToOpenApiSchema(packedChannelSchema),
- QueueCount: convertSchemaToOpenApiSchema(packedQueueCountSchema),
- Antenna: convertSchemaToOpenApiSchema(packedAntennaSchema),
- Clip: convertSchemaToOpenApiSchema(packedClipSchema),
- FederationInstance: convertSchemaToOpenApiSchema(packedFederationInstanceSchema),
- GalleryPost: convertSchemaToOpenApiSchema(packedGalleryPostSchema),
+ ...Object.fromEntries(
+ Object.entries(refs).map(([key, schema]) => [key, convertSchemaToOpenApiSchema(schema)])
+ ),
};
diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts
index 2cb138966f..384ed61409 100644
--- a/src/server/api/stream/channels/global-timeline.ts
+++ b/src/server/api/stream/channels/global-timeline.ts
@@ -43,7 +43,7 @@ export default class extends Channel {
// 関係ない返信は除外
if (note.reply) {
- const reply = note.reply as PackedNote;
+ const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
}
diff --git a/src/server/api/stream/channels/home-timeline.ts b/src/server/api/stream/channels/home-timeline.ts
index c7a9728741..0e21ab552e 100644
--- a/src/server/api/stream/channels/home-timeline.ts
+++ b/src/server/api/stream/channels/home-timeline.ts
@@ -51,7 +51,7 @@ export default class extends Channel {
// 関係ない返信は除外
if (note.reply) {
- const reply = note.reply as PackedNote;
+ const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
}
diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts
index 5c454764ec..0b28ff616b 100644
--- a/src/server/api/stream/channels/hybrid-timeline.ts
+++ b/src/server/api/stream/channels/hybrid-timeline.ts
@@ -4,7 +4,6 @@ import Channel from '../channel';
import { fetchMeta } from '@/misc/fetch-meta';
import { Notes } from '@/models/index';
import { PackedNote } from '@/models/repositories/note';
-import { PackedUser } from '@/models/repositories/user';
import { checkWordMute } from '@/misc/check-word-mute';
import { isBlockerUserRelated } from '@/misc/is-blocker-user-related';
@@ -31,7 +30,7 @@ export default class extends Channel {
if (!(
(note.channelId == null && this.user!.id === note.userId) ||
(note.channelId == null && this.following.has(note.userId)) ||
- (note.channelId == null && ((note.user as PackedUser).host == null && note.visibility === 'public')) ||
+ (note.channelId == null && (note.user.host == null && note.visibility === 'public')) ||
(note.channelId != null && this.followingChannels.has(note.channelId))
)) return;
@@ -60,7 +59,7 @@ export default class extends Channel {
// 関係ない返信は除外
if (note.reply) {
- const reply = note.reply as PackedNote;
+ const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
}
diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts
index 4bf0d02ed3..20061410c4 100644
--- a/src/server/api/stream/channels/local-timeline.ts
+++ b/src/server/api/stream/channels/local-timeline.ts
@@ -4,7 +4,6 @@ import Channel from '../channel';
import { fetchMeta } from '@/misc/fetch-meta';
import { Notes } from '@/models/index';
import { PackedNote } from '@/models/repositories/note';
-import { PackedUser } from '@/models/repositories/user';
import { checkWordMute } from '@/misc/check-word-mute';
import { isBlockerUserRelated } from '@/misc/is-blocker-user-related';
@@ -26,7 +25,7 @@ export default class extends Channel {
@autobind
private async onNote(note: PackedNote) {
- if ((note.user as PackedUser).host !== null) return;
+ if (note.user.host !== null) return;
if (note.visibility !== 'public') return;
if (note.channelId != null && !this.followingChannels.has(note.channelId)) return;
@@ -45,7 +44,7 @@ export default class extends Channel {
// 関係ない返信は除外
if (note.reply) {
- const reply = note.reply as PackedNote;
+ const reply = note.reply;
// 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合
if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return;
}
diff --git a/src/server/api/stream/index.ts b/src/server/api/stream/index.ts
index 469f28f11c..f83bc9331e 100644
--- a/src/server/api/stream/index.ts
+++ b/src/server/api/stream/index.ts
@@ -165,8 +165,8 @@ export default class Connection {
};
add(note);
- if (note.reply) add(note.reply as PackedNote);
- if (note.renote) add(note.renote as PackedNote);
+ if (note.reply) add(note.reply);
+ if (note.renote) add(note.renote);
}
@autobind