summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/charts/instance.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/endpoints/charts/instance.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/charts/instance.ts36
1 files changed, 13 insertions, 23 deletions
diff --git a/packages/backend/src/server/api/endpoints/charts/instance.ts b/packages/backend/src/server/api/endpoints/charts/instance.ts
index 32a10d5a28..2da3cd3c3a 100644
--- a/packages/backend/src/server/api/endpoints/charts/instance.ts
+++ b/packages/backend/src/server/api/endpoints/charts/instance.ts
@@ -1,35 +1,25 @@
-import $ from 'cafy';
import define from '../../define';
-import { convertLog } from '@/services/chart/core';
+import { getJsonSchema } from '@/services/chart/core';
import { instanceChart } from '@/services/chart/index';
export const meta = {
tags: ['charts'],
- params: {
- span: {
- validator: $.str.or(['day', 'hour']),
- },
-
- limit: {
- validator: $.optional.num.range(1, 500),
- default: 30,
- },
-
- offset: {
- validator: $.optional.nullable.num,
- default: null,
- },
+ res: getJsonSchema(instanceChart.schema),
+} as const;
- host: {
- validator: $.str,
- },
+const paramDef = {
+ type: 'object',
+ properties: {
+ span: { type: 'string', enum: ['day', 'hour'] },
+ limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 },
+ offset: { type: 'integer', nullable: true, default: null },
+ host: { type: 'string' },
},
-
- // TODO: response definition
+ required: ['span', 'host'],
} as const;
// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps) => {
- return await instanceChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null, ps.host);
+export default define(meta, paramDef, async (ps) => {
+ return await instanceChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null, ps.host);
});