summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/i
diff options
context:
space:
mode:
authorGrapeApple0 <84321396+GrapeApple0@users.noreply.github.com>2023-12-21 16:57:05 +0900
committerGitHub <noreply@github.com>2023-12-21 16:57:05 +0900
commit79ca93cefb8c892556b49fe4055d397e2a56adcf (patch)
tree001d98fcbc5d17c33c02724f9618303fc14acbc3 /packages/backend/src/server/api/endpoints/i
parentUpdate CHANGELOG.md (diff)
downloadsharkey-79ca93cefb8c892556b49fe4055d397e2a56adcf.tar.gz
sharkey-79ca93cefb8c892556b49fe4055d397e2a56adcf.tar.bz2
sharkey-79ca93cefb8c892556b49fe4055d397e2a56adcf.zip
enhance: api.jsonのレスポンスの内容を実際の内容に合わせる (#12723)
* Create packedAdSchema * admin/emoji/add * admin/get-user-ips * admin/roles/users * admin/get-index-stats * admin/accounts/find-by-email * fix type of admin/ad/list * federation/stats * endpoints * get-online-users-count * i/2fa/register-key * i/2fa/key-done * i/2fa/register * i/apps * i/authorized-apps * i/registry/get-all * i/registry/get * i/registry/get-detail * i/registry/key-with-type * i/registry/scopes-with-domain * i/update-email * i/move * i/webhooks/create * fix miss type * i/webhooks/show * i/webhooks/list * flash/create * roles/users * server-info * test * users/lists/get-memberships * users/achievements * fetch-rss * fetch-external-resources
Diffstat (limited to 'packages/backend/src/server/api/endpoints/i')
-rw-r--r--packages/backend/src/server/api/endpoints/i/2fa/key-done.ts10
-rw-r--r--packages/backend/src/server/api/endpoints/i/2fa/register-key.ts134
-rw-r--r--packages/backend/src/server/api/endpoints/i/2fa/register.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/i/apps.ts33
-rw-r--r--packages/backend/src/server/api/endpoints/i/authorized-apps.ts30
-rw-r--r--packages/backend/src/server/api/endpoints/i/move.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/i/registry/get-all.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/i/registry/get-detail.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/i/registry/get.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts22
-rw-r--r--packages/backend/src/server/api/endpoints/i/update-email.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/i/webhooks/create.ts39
-rw-r--r--packages/backend/src/server/api/endpoints/i/webhooks/list.ts45
-rw-r--r--packages/backend/src/server/api/endpoints/i/webhooks/show.ts40
15 files changed, 387 insertions, 4 deletions
diff --git a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts
index 6d530aba3b..a7be47fd0f 100644
--- a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts
+++ b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts
@@ -32,6 +32,16 @@ export const meta = {
id: '798d6847-b1ed-4f9c-b1f9-163c42655995',
},
},
+
+ res: {
+ type: 'object',
+ nullable: false,
+ optional: false,
+ properties: {
+ id: { type: 'string' },
+ name: { type: 'string' },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
index c39005f2dd..0fac96d58f 100644
--- a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
+++ b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
@@ -36,6 +36,140 @@ export const meta = {
id: 'bf32b864-449b-47b8-974e-f9a5468546f1',
},
},
+
+ res: {
+ type: 'object',
+ nullable: false,
+ optional: false,
+ properties: {
+ rp: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ nullable: true,
+ },
+ },
+ },
+ user: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ },
+ name: {
+ type: 'string',
+ },
+ displayName: {
+ type: 'string',
+ },
+ },
+ },
+ challenge: {
+ type: 'string',
+ },
+ pubKeyCredParams: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ type: {
+ type: 'string',
+ },
+ alg: {
+ type: 'number',
+ },
+ },
+ },
+ },
+ timeout: {
+ type: 'number',
+ nullable: true,
+ },
+ excludeCredentials: {
+ type: 'array',
+ nullable: true,
+ items: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ },
+ type: {
+ type: 'string',
+ },
+ transports: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: [
+ "ble",
+ "cable",
+ "hybrid",
+ "internal",
+ "nfc",
+ "smart-card",
+ "usb",
+ ],
+ },
+ },
+ },
+ },
+ },
+ authenticatorSelection: {
+ type: 'object',
+ nullable: true,
+ properties: {
+ authenticatorAttachment: {
+ type: 'string',
+ enum: [
+ "cross-platform",
+ "platform",
+ ],
+ },
+ requireResidentKey: {
+ type: 'boolean',
+ },
+ userVerification: {
+ type: 'string',
+ enum: [
+ "discouraged",
+ "preferred",
+ "required",
+ ],
+ },
+ },
+ },
+ attestation: {
+ type: 'string',
+ nullable: true,
+ enum: [
+ "direct",
+ "enterprise",
+ "indirect",
+ "none",
+ ],
+ },
+ extensions: {
+ type: 'object',
+ nullable: true,
+ properties: {
+ appid: {
+ type: 'string',
+ nullable: true,
+ },
+ credProps: {
+ type: 'boolean',
+ nullable: true,
+ },
+ hmacCreateSecret: {
+ type: 'boolean',
+ nullable: true,
+ },
+ },
+ },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register.ts b/packages/backend/src/server/api/endpoints/i/2fa/register.ts
index b358c812ee..cc083cbf7b 100644
--- a/packages/backend/src/server/api/endpoints/i/2fa/register.ts
+++ b/packages/backend/src/server/api/endpoints/i/2fa/register.ts
@@ -26,6 +26,19 @@ export const meta = {
id: '78d6c839-20c9-4c66-b90a-fc0542168b48',
},
},
+
+ res: {
+ type: 'object',
+ nullable: false,
+ optional: false,
+ properties: {
+ qr: { type: 'string' },
+ url: { type: 'string' },
+ secret: { type: 'string' },
+ label: { type: 'string' },
+ issuer: { type: 'string' },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/apps.ts b/packages/backend/src/server/api/endpoints/i/apps.ts
index 09f6540a77..ef89f93181 100644
--- a/packages/backend/src/server/api/endpoints/i/apps.ts
+++ b/packages/backend/src/server/api/endpoints/i/apps.ts
@@ -13,6 +13,37 @@ export const meta = {
requireCredential: true,
secure: true,
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ name: {
+ type: 'string',
+ },
+ createdAt: {
+ type: 'string',
+ format: 'date-time',
+ },
+ lastUsedAt: {
+ type: 'string',
+ format: 'date-time',
+ },
+ permission: {
+ type: 'array',
+ uniqueItems: true,
+ items: {
+ type: 'string'
+ },
+ }
+ },
+ },
+ },
} as const;
export const paramDef = {
@@ -50,7 +81,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
id: token.id,
name: token.name ?? token.app?.name,
createdAt: this.idService.parse(token.id).date.toISOString(),
- lastUsedAt: token.lastUsedAt,
+ lastUsedAt: token.lastUsedAt?.toISOString(),
permission: token.permission,
})));
});
diff --git a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts
index 32061c2aa4..a0ed371fb8 100644
--- a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts
+++ b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts
@@ -14,6 +14,36 @@ export const meta = {
requireCredential: true,
secure: true,
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ name: {
+ type: 'string',
+ },
+ callbackUrl: {
+ type: 'string',
+ nullable: true,
+ },
+ permission: {
+ type: 'array',
+ uniqueItems: true,
+ items: {
+ type: 'string'
+ },
+ },
+ isAuthorized: {
+ type: 'boolean',
+ },
+ },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/move.ts b/packages/backend/src/server/api/endpoints/i/move.ts
index 86b726e054..f3ba720c2b 100644
--- a/packages/backend/src/server/api/endpoints/i/move.ts
+++ b/packages/backend/src/server/api/endpoints/i/move.ts
@@ -64,6 +64,10 @@ export const meta = {
id: 'b234a14e-9ebe-4581-8000-074b3c215962',
},
},
+
+ res: {
+ type: 'object',
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/registry/get-all.ts b/packages/backend/src/server/api/endpoints/i/registry/get-all.ts
index 29fa0a29cc..bd6e85a074 100644
--- a/packages/backend/src/server/api/endpoints/i/registry/get-all.ts
+++ b/packages/backend/src/server/api/endpoints/i/registry/get-all.ts
@@ -9,6 +9,10 @@ import { RegistryApiService } from '@/core/RegistryApiService.js';
export const meta = {
requireCredential: true,
+
+ res: {
+ type: 'object',
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts b/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts
index 5b460b45d6..2352beb130 100644
--- a/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts
+++ b/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts
@@ -18,6 +18,10 @@ export const meta = {
id: '97a1e8e7-c0f7-47d2-957a-92e61256e01a',
},
},
+
+ res: {
+ type: 'object',
+ }
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/registry/get.ts b/packages/backend/src/server/api/endpoints/i/registry/get.ts
index e8c28298ef..4155a43e0d 100644
--- a/packages/backend/src/server/api/endpoints/i/registry/get.ts
+++ b/packages/backend/src/server/api/endpoints/i/registry/get.ts
@@ -18,6 +18,10 @@ export const meta = {
id: 'ac3ed68a-62f0-422b-a7bc-d5e09e8f6a6a',
},
},
+
+ res: {
+ type: 'object',
+ }
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts b/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts
index 8953ee5d3d..b411cdd3d9 100644
--- a/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts
+++ b/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts
@@ -9,6 +9,10 @@ import { RegistryApiService } from '@/core/RegistryApiService.js';
export const meta = {
requireCredential: true,
+
+ res: {
+ type: 'object',
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts b/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts
index 1ff994b82c..0aca2a26fe 100644
--- a/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts
+++ b/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts
@@ -10,6 +10,28 @@ import { RegistryApiService } from '@/core/RegistryApiService.js';
export const meta = {
requireCredential: true,
secure: true,
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ scopes: {
+ type: 'array',
+ items: {
+ type: 'array',
+ items: {
+ type: 'string',
+ }
+ }
+ },
+ domain: {
+ type: 'string',
+ nullable: true,
+ },
+ },
+ },
+ }
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/update-email.ts b/packages/backend/src/server/api/endpoints/i/update-email.ts
index a36b3a732b..52977f5a07 100644
--- a/packages/backend/src/server/api/endpoints/i/update-email.ts
+++ b/packages/backend/src/server/api/endpoints/i/update-email.ts
@@ -40,6 +40,11 @@ export const meta = {
id: 'a2defefb-f220-8849-0af6-17f816099323',
},
},
+
+ res: {
+ type: 'object',
+ ref: 'UserDetailed',
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts b/packages/backend/src/server/api/endpoints/i/webhooks/create.ts
index f00dba4a85..bdc9f9ea8b 100644
--- a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts
+++ b/packages/backend/src/server/api/endpoints/i/webhooks/create.ts
@@ -27,6 +27,33 @@ export const meta = {
id: '87a9bb19-111e-4e37-81d3-a3e7426453b0',
},
},
+
+ res: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id'
+ },
+ userId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ name: { type: 'string' },
+ on: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: webhookEventTypes,
+ }
+ },
+ url: { type: 'string' },
+ secret: { type: 'string' },
+ active: { type: 'boolean' },
+ latestSentAt: { type: 'string', format: 'date-time', nullable: true },
+ latestStatus: { type: 'integer', nullable: true },
+ },
+ },
} as const;
export const paramDef = {
@@ -73,7 +100,17 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
this.globalEventService.publishInternalEvent('webhookCreated', webhook);
- return webhook;
+ return {
+ id: webhook.id,
+ userId: webhook.userId,
+ name: webhook.name,
+ on: webhook.on,
+ url: webhook.url,
+ secret: webhook.secret,
+ active: webhook.active,
+ latestSentAt: webhook.latestSentAt?.toISOString(),
+ latestStatus: webhook.latestStatus,
+ };
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/list.ts b/packages/backend/src/server/api/endpoints/i/webhooks/list.ts
index aa8921fe24..afb2d0509e 100644
--- a/packages/backend/src/server/api/endpoints/i/webhooks/list.ts
+++ b/packages/backend/src/server/api/endpoints/i/webhooks/list.ts
@@ -5,6 +5,7 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
+import { webhookEventTypes } from '@/models/Webhook.js';
import type { WebhooksRepository } from '@/models/_.js';
import { DI } from '@/di-symbols.js';
@@ -14,6 +15,36 @@ export const meta = {
requireCredential: true,
kind: 'read:account',
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id'
+ },
+ userId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ name: { type: 'string' },
+ on: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: webhookEventTypes,
+ }
+ },
+ url: { type: 'string' },
+ secret: { type: 'string' },
+ active: { type: 'boolean' },
+ latestSentAt: { type: 'string', format: 'date-time', nullable: true },
+ latestStatus: { type: 'integer', nullable: true },
+ },
+ }
+ }
} as const;
export const paramDef = {
@@ -33,7 +64,19 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
userId: me.id,
});
- return webhooks;
+ return webhooks.map(webhook => (
+ {
+ id: webhook.id,
+ userId: webhook.userId,
+ name: webhook.name,
+ on: webhook.on,
+ url: webhook.url,
+ secret: webhook.secret,
+ active: webhook.active,
+ latestSentAt: webhook.latestSentAt?.toISOString(),
+ latestStatus: webhook.latestStatus,
+ }
+ ));
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/show.ts b/packages/backend/src/server/api/endpoints/i/webhooks/show.ts
index f1294bb5c8..5c6dd908b4 100644
--- a/packages/backend/src/server/api/endpoints/i/webhooks/show.ts
+++ b/packages/backend/src/server/api/endpoints/i/webhooks/show.ts
@@ -5,6 +5,7 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
+import { webhookEventTypes } from '@/models/Webhook.js';
import type { WebhooksRepository } from '@/models/_.js';
import { DI } from '@/di-symbols.js';
import { ApiError } from '../../../error.js';
@@ -23,6 +24,33 @@ export const meta = {
id: '50f614d9-3047-4f7e-90d8-ad6b2d5fb098',
},
},
+
+ res: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id'
+ },
+ userId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ name: { type: 'string' },
+ on: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: webhookEventTypes,
+ }
+ },
+ url: { type: 'string' },
+ secret: { type: 'string' },
+ active: { type: 'boolean' },
+ latestSentAt: { type: 'string', format: 'date-time', nullable: true },
+ latestStatus: { type: 'integer', nullable: true },
+ },
+ },
} as const;
export const paramDef = {
@@ -49,7 +77,17 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
throw new ApiError(meta.errors.noSuchWebhook);
}
- return webhook;
+ return {
+ id: webhook.id,
+ userId: webhook.userId,
+ name: webhook.name,
+ on: webhook.on,
+ url: webhook.url,
+ secret: webhook.secret,
+ active: webhook.active,
+ latestSentAt: webhook.latestSentAt?.toISOString(),
+ latestStatus: webhook.latestStatus,
+ };
});
}
}