summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-25 04:02:18 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-25 04:02:18 +0900
commit47d4dcfdf55864f50bb278cd8ba6122be600d159 (patch)
treead482cfc0d1acc5fdac82d33d9a041e303584f3f /src
parentImprove doc (diff)
downloadsharkey-47d4dcfdf55864f50bb278cd8ba6122be600d159.tar.gz
sharkey-47d4dcfdf55864f50bb278cd8ba6122be600d159.tar.bz2
sharkey-47d4dcfdf55864f50bb278cd8ba6122be600d159.zip
Improve doc
Diffstat (limited to 'src')
-rw-r--r--src/server/api/endpoints/charts/user/following.ts10
-rw-r--r--src/services/chart/per-user-following.ts84
2 files changed, 62 insertions, 32 deletions
diff --git a/src/server/api/endpoints/charts/user/following.ts b/src/server/api/endpoints/charts/user/following.ts
index 73f0c1e4f0..f5b1355038 100644
--- a/src/server/api/endpoints/charts/user/following.ts
+++ b/src/server/api/endpoints/charts/user/following.ts
@@ -1,7 +1,8 @@
import $ from 'cafy';
import define from '../../../define';
-import perUserFollowingChart from '../../../../../services/chart/per-user-following';
+import perUserFollowingChart, { perUserFollowingLogSchema } from '../../../../../services/chart/per-user-following';
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(perUserFollowingLogSchema),
};
export default define(meta, async (ps) => {
diff --git a/src/services/chart/per-user-following.ts b/src/services/chart/per-user-following.ts
index 9d6d347ef6..8a94a4f155 100644
--- a/src/services/chart/per-user-following.ts
+++ b/src/services/chart/per-user-following.ts
@@ -2,56 +2,90 @@ import autobind from 'autobind-decorator';
import Chart, { Obj } from './';
import Following from '../../models/following';
import { IUser, isLocalUser } from '../../models/user';
+import { SchemaType } from '../../misc/schema';
-/**
- * ユーザーごとのフォローに関するチャート
- */
-type PerUserFollowingLog = {
- local: {
- /**
- * フォローしている
- */
- followings: {
+export const logSchema = {
+ /**
+ * フォローしている
+ */
+ followings: {
+ type: 'object' as 'object',
+ properties: {
/**
- * 合計
+ * フォローしている合計
*/
- total: number;
+ total: {
+ type: 'number',
+ description: 'フォローしている合計',
+ },
/**
* フォローした数
*/
- inc: number;
+ inc: {
+ type: 'number',
+ description: 'フォローした数',
+ },
/**
* フォロー解除した数
*/
- dec: number;
- };
+ dec: {
+ type: 'number',
+ description: 'フォロー解除した数',
+ },
+ }
+ },
- /**
- * フォローされている
- */
- followers: {
+ /**
+ * フォローされている
+ */
+ followers: {
+ type: 'object' as 'object',
+ properties: {
/**
- * 合計
+ * フォローされている合計
*/
- total: number;
+ total: {
+ type: 'number',
+ description: 'フォローされている合計',
+ },
/**
* フォローされた数
*/
- inc: number;
+ inc: {
+ type: 'number',
+ description: 'フォローされた数',
+ },
/**
* フォロー解除された数
*/
- dec: number;
- };
- };
+ dec: {
+ type: 'number',
+ description: 'フォロー解除された数',
+ },
+ }
+ },
+};
- remote: PerUserFollowingLog['local'];
+export const perUserFollowingLogSchema = {
+ type: 'object' as 'object',
+ properties: {
+ local: {
+ type: 'object' as 'object',
+ properties: logSchema
+ },
+ remote: {
+ type: 'object' as 'object',
+ properties: logSchema
+ },
+ }
};
+type PerUserFollowingLog = SchemaType<typeof perUserFollowingLogSchema>;
+
class PerUserFollowingChart extends Chart<PerUserFollowingLog> {
constructor() {
super('perUserFollowing', true);