Improve API doc

This commit is contained in:
syuilo 2019-05-20 22:01:32 +09:00
parent e7dd5e155d
commit a78b048720
No known key found for this signature in database
GPG Key ID: BDC4C49D06AB9D69
3 changed files with 46 additions and 2 deletions

View File

@ -2,6 +2,7 @@ import { EntityRepository, Repository } from 'typeorm';
import { NoteFavorite } from '../entities/note-favorite'; import { NoteFavorite } from '../entities/note-favorite';
import { Notes } from '..'; import { Notes } from '..';
import { ensure } from '../../prelude/ensure'; import { ensure } from '../../prelude/ensure';
import { types, bool } from '../../misc/schema';
@EntityRepository(NoteFavorite) @EntityRepository(NoteFavorite)
export class NoteFavoriteRepository extends Repository<NoteFavorite> { export class NoteFavoriteRepository extends Repository<NoteFavorite> {
@ -26,3 +27,33 @@ export class NoteFavoriteRepository extends Repository<NoteFavorite> {
return Promise.all(favorites.map(x => this.pack(x, me))); return Promise.all(favorites.map(x => this.pack(x, me)));
} }
} }
export const packedNoteFavoriteSchema = {
type: types.object,
optional: bool.false, nullable: bool.false,
properties: {
id: {
type: types.string,
optional: bool.false, nullable: bool.false,
format: 'id',
description: 'The unique identifier for this favorite.',
example: 'xxxxxxxxxx',
},
createdAt: {
type: types.string,
optional: bool.false, nullable: bool.false,
format: 'date-time',
description: 'The date that the favorite was created.'
},
note: {
type: types.object,
optional: bool.false, nullable: bool.false,
ref: 'Note',
},
noteId: {
type: types.string,
optional: bool.false, nullable: bool.false,
format: 'id',
},
},
};

View File

@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define'; import define from '../../define';
import { NoteFavorites } from '../../../../models'; import { NoteFavorites } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query'; import { makePaginationQuery } from '../../common/make-pagination-query';
import { types, bool } from '../../../../misc/schema';
export const meta = { export const meta = {
desc: { desc: {
@ -29,7 +30,17 @@ export const meta = {
untilId: { untilId: {
validator: $.optional.type(ID), validator: $.optional.type(ID),
}, },
},
res: {
type: types.array,
optional: bool.false, nullable: bool.false,
items: {
type: types.object,
optional: bool.false, nullable: bool.false,
ref: 'NoteFavorite',
} }
},
}; };
export default define(meta, async (ps, user) => { export default define(meta, async (ps, user) => {

View File

@ -14,6 +14,7 @@ import { packedNoteReactionSchema } from '../../../models/repositories/note-reac
import { packedHashtagSchema } from '../../../models/repositories/hashtag'; import { packedHashtagSchema } from '../../../models/repositories/hashtag';
import { packedPageSchema } from '../../../models/repositories/page'; import { packedPageSchema } from '../../../models/repositories/page';
import { packedUserGroupSchema } from '../../../models/repositories/user-group'; import { packedUserGroupSchema } from '../../../models/repositories/user-group';
import { packedNoteFavoriteSchema } from '../../../models/repositories/note-favorite';
export function convertSchemaToOpenApiSchema(schema: Schema) { export function convertSchemaToOpenApiSchema(schema: Schema) {
const res: any = schema; const res: any = schema;
@ -71,13 +72,14 @@ export const schemas = {
App: convertSchemaToOpenApiSchema(packedAppSchema), App: convertSchemaToOpenApiSchema(packedAppSchema),
MessagingMessage: convertSchemaToOpenApiSchema(packedMessagingMessageSchema), MessagingMessage: convertSchemaToOpenApiSchema(packedMessagingMessageSchema),
Note: convertSchemaToOpenApiSchema(packedNoteSchema), Note: convertSchemaToOpenApiSchema(packedNoteSchema),
NoteReaction: convertSchemaToOpenApiSchema(packedNoteReactionSchema),
NoteFavorite: convertSchemaToOpenApiSchema(packedNoteFavoriteSchema),
Notification: convertSchemaToOpenApiSchema(packedNotificationSchema), Notification: convertSchemaToOpenApiSchema(packedNotificationSchema),
DriveFile: convertSchemaToOpenApiSchema(packedDriveFileSchema), DriveFile: convertSchemaToOpenApiSchema(packedDriveFileSchema),
DriveFolder: convertSchemaToOpenApiSchema(packedDriveFolderSchema), DriveFolder: convertSchemaToOpenApiSchema(packedDriveFolderSchema),
Following: convertSchemaToOpenApiSchema(packedFollowingSchema), Following: convertSchemaToOpenApiSchema(packedFollowingSchema),
Muting: convertSchemaToOpenApiSchema(packedMutingSchema), Muting: convertSchemaToOpenApiSchema(packedMutingSchema),
Blocking: convertSchemaToOpenApiSchema(packedBlockingSchema), Blocking: convertSchemaToOpenApiSchema(packedBlockingSchema),
NoteReaction: convertSchemaToOpenApiSchema(packedNoteReactionSchema),
Hashtag: convertSchemaToOpenApiSchema(packedHashtagSchema), Hashtag: convertSchemaToOpenApiSchema(packedHashtagSchema),
Page: convertSchemaToOpenApiSchema(packedPageSchema), Page: convertSchemaToOpenApiSchema(packedPageSchema),
}; };