summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-24 10:04:27 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-24 10:04:27 +0900
commit97b99867f22ef03b3759e5e78ef3ce1e78d83f17 (patch)
tree96e587c509ac9af4a01d39353c29a50a4d720936 /src
parentImprove doc (diff)
downloadsharkey-97b99867f22ef03b3759e5e78ef3ce1e78d83f17.tar.gz
sharkey-97b99867f22ef03b3759e5e78ef3ce1e78d83f17.tar.bz2
sharkey-97b99867f22ef03b3759e5e78ef3ce1e78d83f17.zip
Improve doc
Diffstat (limited to 'src')
-rw-r--r--src/server/api/endpoints/charts/user/notes.ts10
-rw-r--r--src/services/chart/per-user-notes.ts66
2 files changed, 39 insertions, 37 deletions
diff --git a/src/server/api/endpoints/charts/user/notes.ts b/src/server/api/endpoints/charts/user/notes.ts
index 6a95911b11..7e31978bf3 100644
--- a/src/server/api/endpoints/charts/user/notes.ts
+++ b/src/server/api/endpoints/charts/user/notes.ts
@@ -1,7 +1,8 @@
import $ from 'cafy';
import define from '../../../define';
-import perUserNotesChart from '../../../../../services/chart/per-user-notes';
+import perUserNotesChart, { perUserNotesLogSchema } from '../../../../../services/chart/per-user-notes';
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(perUserNotesLogSchema),
};
export default define(meta, async (ps) => {
diff --git a/src/services/chart/per-user-notes.ts b/src/services/chart/per-user-notes.ts
index 9ce4e67c50..957a85737d 100644
--- a/src/services/chart/per-user-notes.ts
+++ b/src/services/chart/per-user-notes.ts
@@ -2,44 +2,50 @@ import autobind from 'autobind-decorator';
import Chart, { Obj } from './';
import Note, { INote } from '../../models/note';
import { IUser } from '../../models/user';
+import { SchemaType } from '../../prelude/schema';
-/**
- * ユーザーごとの投稿に関するチャート
- */
-type PerUserNotesLog = {
- /**
- * 集計期間時点での、全投稿数
- */
- total: number;
+export const perUserNotesLogSchema = {
+ type: 'object' as 'object',
+ properties: {
+ total: {
+ type: 'number' as 'number',
+ description: '集計期間時点での、全投稿数'
+ },
- /**
- * 増加した投稿数
- */
- inc: number;
+ inc: {
+ type: 'number' as 'number',
+ description: '増加した投稿数'
+ },
- /**
- * 減少した投稿数
- */
- dec: number;
+ dec: {
+ type: 'number' as 'number',
+ description: '減少した投稿数'
+ },
- diffs: {
- /**
- * 通常の投稿数の差分
- */
- normal: number;
+ diffs: {
+ type: 'object' as 'object',
+ properties: {
+ normal: {
+ type: 'number' as 'number',
+ description: '通常の投稿数の差分'
+ },
- /**
- * リプライの投稿数の差分
- */
- reply: number;
+ reply: {
+ type: 'number' as 'number',
+ description: 'リプライの投稿数の差分'
+ },
- /**
- * Renoteの投稿数の差分
- */
- renote: number;
- };
+ renote: {
+ type: 'number' as 'number',
+ description: 'Renoteの投稿数の差分'
+ },
+ }
+ },
+ }
};
+type PerUserNotesLog = SchemaType<typeof perUserNotesLogSchema>;
+
class PerUserNotesChart extends Chart<PerUserNotesLog> {
constructor() {
super('perUserNotes', true);