From ac0390fec36ff16bc5bb924563d6b1bc7d52120a Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 24 Feb 2019 10:08:09 +0900 Subject: [PATCH] Improve doc --- src/server/api/endpoints/charts/user/drive.ts | 10 +-- src/services/chart/per-user-drive.ts | 77 ++++++++++++------- 2 files changed, 52 insertions(+), 35 deletions(-) diff --git a/src/server/api/endpoints/charts/user/drive.ts b/src/server/api/endpoints/charts/user/drive.ts index 32645b38c6..064c7c7b72 100644 --- a/src/server/api/endpoints/charts/user/drive.ts +++ b/src/server/api/endpoints/charts/user/drive.ts @@ -1,7 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; -import perUserDriveChart from '../../../../../services/chart/per-user-drive'; +import perUserDriveChart, { perUserDriveLogSchema } from '../../../../../services/chart/per-user-drive'; import ID, { transform } from '../../../../../misc/cafy-id'; +import { convertLog } from '../../../../../services/chart'; export const meta = { stability: 'stable', @@ -38,12 +39,7 @@ export const meta = { } }, - res: { - type: 'array', - items: { - type: 'object', - }, - }, + res: convertLog(perUserDriveLogSchema), }; export default define(meta, async (ps) => { diff --git a/src/services/chart/per-user-drive.ts b/src/services/chart/per-user-drive.ts index d23852bdd9..8e8e83d35b 100644 --- a/src/services/chart/per-user-drive.ts +++ b/src/services/chart/per-user-drive.ts @@ -1,42 +1,63 @@ import autobind from 'autobind-decorator'; import Chart, { Obj } from './'; import DriveFile, { IDriveFile } from '../../models/drive-file'; +import { SchemaType } from '../../prelude/schema'; -/** - * ユーザーごとのドライブに関するチャート - */ -type PerUserDriveLog = { - /** - * 集計期間時点での、全ドライブファイル数 - */ - totalCount: number; +export const perUserDriveLogSchema = { + type: 'object' as 'object', + properties: { + /** + * 集計期間時点での、全ドライブファイル数 + */ + totalCount: { + type: 'number' as 'number', + description: '集計期間時点での、全ドライブファイル数' + }, - /** - * 集計期間時点での、全ドライブファイルの合計サイズ - */ - totalSize: number; + /** + * 集計期間時点での、全ドライブファイルの合計サイズ + */ + totalSize: { + type: 'number' as 'number', + description: '集計期間時点での、全ドライブファイルの合計サイズ' + }, - /** - * 増加したドライブファイル数 - */ - incCount: number; + /** + * 増加したドライブファイル数 + */ + incCount: { + type: 'number' as 'number', + description: '増加したドライブファイル数' + }, - /** - * 増加したドライブ使用量 - */ - incSize: number; + /** + * 増加したドライブ使用量 + */ + incSize: { + type: 'number' as 'number', + description: '増加したドライブ使用量' + }, - /** - * 減少したドライブファイル数 - */ - decCount: number; + /** + * 減少したドライブファイル数 + */ + decCount: { + type: 'number' as 'number', + description: '減少したドライブファイル数' + }, - /** - * 減少したドライブ使用量 - */ - decSize: number; + /** + * 減少したドライブ使用量 + */ + decSize: { + type: 'number' as 'number', + description: '減少したドライブ使用量' + }, + } }; +type PerUserDriveLog = SchemaType; + class PerUserDriveChart extends Chart { constructor() { super('perUserDrive', true);