summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
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
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')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/admin/ad/create.ts19
-rw-r--r--packages/backend/src/server/api/endpoints/admin/ad/list.ts24
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/add.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/get-index-stats.ts10
-rw-r--r--packages/backend/src/server/api/endpoints/admin/get-user-ips.ts19
-rw-r--r--packages/backend/src/server/api/endpoints/admin/roles/users.ts16
-rw-r--r--packages/backend/src/server/api/endpoints/endpoint.ts17
-rw-r--r--packages/backend/src/server/api/endpoints/federation/stats.ts86
-rw-r--r--packages/backend/src/server/api/endpoints/fetch-external-resources.ts12
-rw-r--r--packages/backend/src/server/api/endpoints/fetch-rss.ts12
-rw-r--r--packages/backend/src/server/api/endpoints/flash/create.ts6
-rw-r--r--packages/backend/src/server/api/endpoints/get-online-users-count.ts10
-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
-rw-r--r--packages/backend/src/server/api/endpoints/roles/users.ts19
-rw-r--r--packages/backend/src/server/api/endpoints/server-info.ts47
-rw-r--r--packages/backend/src/server/api/endpoints/test.ts24
-rw-r--r--packages/backend/src/server/api/endpoints/users/achievements.ts15
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts29
33 files changed, 756 insertions, 7 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts
index 7dc9ca830b..bc292fd53a 100644
--- a/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts
+++ b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts
@@ -25,6 +25,11 @@ export const meta = {
id: 'cb865949-8af5-4062-a88c-ef55e8786d1d',
},
},
+ res: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'User',
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/admin/ad/create.ts b/packages/backend/src/server/api/endpoints/admin/ad/create.ts
index cbe9727c46..087ae4befc 100644
--- a/packages/backend/src/server/api/endpoints/admin/ad/create.ts
+++ b/packages/backend/src/server/api/endpoints/admin/ad/create.ts
@@ -17,6 +17,12 @@ export const meta = {
requireCredential: true,
requireModerator: true,
+ res: {
+ type: 'object',
+ optional: false,
+ nullable: false,
+ ref: 'Ad',
+ },
} as const;
export const paramDef = {
@@ -63,7 +69,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
ad: ad,
});
- return ad;
+ return {
+ id: ad.id,
+ expiresAt: ad.expiresAt.toISOString(),
+ startsAt: ad.startsAt.toISOString(),
+ dayOfWeek: ad.dayOfWeek,
+ url: ad.url,
+ imageUrl: ad.imageUrl,
+ priority: ad.priority,
+ ratio: ad.ratio,
+ place: ad.place,
+ memo: ad.memo,
+ };
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/admin/ad/list.ts b/packages/backend/src/server/api/endpoints/admin/ad/list.ts
index 3bda9fcb02..12528917dc 100644
--- a/packages/backend/src/server/api/endpoints/admin/ad/list.ts
+++ b/packages/backend/src/server/api/endpoints/admin/ad/list.ts
@@ -16,6 +16,17 @@ export const meta = {
requireCredential: true,
requireModerator: true,
+ res: {
+ type: 'array',
+ optional: false,
+ nullable: false,
+ items: {
+ type: 'object',
+ optional: false,
+ nullable: false,
+ ref: 'Ad',
+ },
+ },
} as const;
export const paramDef = {
@@ -46,7 +57,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
}
const ads = await query.limit(ps.limit).getMany();
- return ads;
+ return ads.map(ad => ({
+ id: ad.id,
+ expiresAt: ad.expiresAt.toISOString(),
+ startsAt: ad.startsAt.toISOString(),
+ dayOfWeek: ad.dayOfWeek,
+ url: ad.url,
+ imageUrl: ad.imageUrl,
+ memo: ad.memo,
+ place: ad.place,
+ priority: ad.priority,
+ ratio: ad.ratio,
+ }));
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts
index 360926594a..76ff1c6b94 100644
--- a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts
+++ b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts
@@ -31,6 +31,8 @@ export const meta = {
id: 'f7a3462c-4e6e-4069-8421-b9bd4f4c3975',
},
},
+
+ ref: 'EmojiDetailed',
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts b/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts
index 2de85f655a..b81d9857d7 100644
--- a/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts
+++ b/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts
@@ -15,6 +15,16 @@ export const meta = {
kind: 'read:admin',
tags: ['admin'],
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ tablename: { type: 'string' },
+ indexname: { type: 'string' },
+ },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts b/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts
index 6a404c0c77..76c32f2a9f 100644
--- a/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts
+++ b/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts
@@ -16,6 +16,25 @@ export const meta = {
requireCredential: true,
requireModerator: true,
+ res: {
+ type: 'array',
+ optional: false,
+ nullable: false,
+ items: {
+ type: 'object',
+ optional: false,
+ nullable: false,
+ properties: {
+ ip: { type: 'string' },
+ createdAt: {
+ type: 'string',
+ optional: false,
+ nullable: false,
+ format: 'date-time',
+ },
+ },
+ },
+ }
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/admin/roles/users.ts b/packages/backend/src/server/api/endpoints/admin/roles/users.ts
index 53145a32d6..6a0f7f9987 100644
--- a/packages/backend/src/server/api/endpoints/admin/roles/users.ts
+++ b/packages/backend/src/server/api/endpoints/admin/roles/users.ts
@@ -28,6 +28,20 @@ export const meta = {
id: '224eff5e-2488-4b18-b3e7-f50d94421648',
},
},
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ id: { type: 'string', format: 'misskey:id' },
+ createdAt: { type: 'string', format: 'date-time' },
+ user: { ref: 'UserDetailed' },
+ expiresAt: { type: 'string', format: 'date-time', nullable: true },
+ },
+ required: ['id', 'createdAt', 'user'],
+ },
+ }
} as const;
export const paramDef = {
@@ -80,7 +94,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
id: assign.id,
createdAt: this.idService.parse(assign.id).date.toISOString(),
user: await this.userEntityService.pack(assign.user!, me, { detail: true }),
- expiresAt: assign.expiresAt,
+ expiresAt: assign.expiresAt?.toISOString() ?? null,
})));
});
}
diff --git a/packages/backend/src/server/api/endpoints/endpoint.ts b/packages/backend/src/server/api/endpoints/endpoint.ts
index cecaded20a..66ac8f664f 100644
--- a/packages/backend/src/server/api/endpoints/endpoint.ts
+++ b/packages/backend/src/server/api/endpoints/endpoint.ts
@@ -11,6 +11,23 @@ export const meta = {
requireCredential: false,
tags: ['meta'],
+
+ res: {
+ type: 'object',
+ nullable: true,
+ properties: {
+ params: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ name: { type: 'string' },
+ type: { type: 'string' },
+ },
+ },
+ },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/federation/stats.ts b/packages/backend/src/server/api/endpoints/federation/stats.ts
index e3ffea7b7e..6548142d41 100644
--- a/packages/backend/src/server/api/endpoints/federation/stats.ts
+++ b/packages/backend/src/server/api/endpoints/federation/stats.ts
@@ -18,6 +18,92 @@ export const meta = {
allowGet: true,
cacheSec: 60 * 60,
+
+ res: {
+ type: 'object',
+ optional: false,
+ nullable: false,
+ properties: {
+ topSubInstances: {
+ type: 'array',
+ optional: false,
+ nullable: false,
+ items: {
+ properties: {
+ id: { type: 'string' },
+ firstRetrievedAt: { type: 'string' },
+ host: { type: 'string' },
+ usersCount: { type: 'number' },
+ notesCount: { type: 'number' },
+ followingCount: { type: 'number' },
+ followersCount: { type: 'number' },
+ isNotResponding: { type: 'boolean' },
+ isSuspended: { type: 'boolean' },
+ isBlocked: { type: 'boolean' },
+ softwareName: { type: 'string' },
+ softwareVersion: { type: 'string' },
+ openRegistrations: { type: 'boolean' },
+ name: { type: 'string' },
+ description: { type: 'string' },
+ maintainerName: { type: 'string' },
+ maintainerEmail: { type: 'string' },
+ isSilenced: { type: 'boolean' },
+ iconUrl: { type: 'string' },
+ faviconUrl: { type: 'string' },
+ themeColor: { type: 'string' },
+ infoUpdatedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ latestRequestReceivedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ }
+ },
+ },
+ otherFollowersCount: { type: 'number' },
+ topPubInstances: {
+ type: 'array',
+ optional: false,
+ nullable: false,
+ items: {
+ properties: {
+ id: { type: 'string' },
+ firstRetrievedAt: { type: 'string' },
+ host: { type: 'string' },
+ usersCount: { type: 'number' },
+ notesCount: { type: 'number' },
+ followingCount: { type: 'number' },
+ followersCount: { type: 'number' },
+ isNotResponding: { type: 'boolean' },
+ isSuspended: { type: 'boolean' },
+ isBlocked: { type: 'boolean' },
+ softwareName: { type: 'string' },
+ softwareVersion: { type: 'string' },
+ openRegistrations: { type: 'boolean' },
+ name: { type: 'string' },
+ description: { type: 'string' },
+ maintainerName: { type: 'string' },
+ maintainerEmail: { type: 'string' },
+ isSilenced: { type: 'boolean' },
+ iconUrl: { type: 'string' },
+ faviconUrl: { type: 'string' },
+ themeColor: { type: 'string' },
+ infoUpdatedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ latestRequestReceivedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ }
+ },
+ },
+ otherFollowingCount: { type: 'number' },
+ },
+ }
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/fetch-external-resources.ts b/packages/backend/src/server/api/endpoints/fetch-external-resources.ts
index d7b46cc666..6391a2f580 100644
--- a/packages/backend/src/server/api/endpoints/fetch-external-resources.ts
+++ b/packages/backend/src/server/api/endpoints/fetch-external-resources.ts
@@ -32,6 +32,18 @@ export const meta = {
id: '693ba8ba-b486-40df-a174-72f8279b56a4',
},
},
+
+ res: {
+ type: 'object',
+ properties: {
+ type: {
+ type: 'string',
+ },
+ data: {
+ type: 'string',
+ },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/fetch-rss.ts b/packages/backend/src/server/api/endpoints/fetch-rss.ts
index 37859d8330..b2dee83fe9 100644
--- a/packages/backend/src/server/api/endpoints/fetch-rss.ts
+++ b/packages/backend/src/server/api/endpoints/fetch-rss.ts
@@ -16,6 +16,18 @@ export const meta = {
requireCredential: false,
allowGet: true,
cacheSec: 60 * 3,
+
+ res: {
+ type: 'object',
+ properties: {
+ items: {
+ type: 'array',
+ items: {
+ type: 'object',
+ },
+ }
+ }
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/flash/create.ts b/packages/backend/src/server/api/endpoints/flash/create.ts
index 4fa65ac9aa..674f323734 100644
--- a/packages/backend/src/server/api/endpoints/flash/create.ts
+++ b/packages/backend/src/server/api/endpoints/flash/create.ts
@@ -27,6 +27,12 @@ export const meta = {
errors: {
},
+
+ res: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'Flash',
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/get-online-users-count.ts b/packages/backend/src/server/api/endpoints/get-online-users-count.ts
index 8a61168f25..737d637b7e 100644
--- a/packages/backend/src/server/api/endpoints/get-online-users-count.ts
+++ b/packages/backend/src/server/api/endpoints/get-online-users-count.ts
@@ -16,6 +16,16 @@ export const meta = {
requireCredential: false,
allowGet: true,
cacheSec: 60 * 1,
+ res: {
+ type: 'object',
+ optional: false, nullable: false,
+ properties: {
+ count: {
+ type: 'number',
+ nullable: false,
+ },
+ },
+ },
} as const;
export const paramDef = {
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,
+ };
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/roles/users.ts b/packages/backend/src/server/api/endpoints/roles/users.ts
index caaa3735e9..d304d075b2 100644
--- a/packages/backend/src/server/api/endpoints/roles/users.ts
+++ b/packages/backend/src/server/api/endpoints/roles/users.ts
@@ -24,6 +24,25 @@ export const meta = {
id: '30aaaee3-4792-48dc-ab0d-cf501a575ac5',
},
},
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ nullable: false,
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id'
+ },
+ user: {
+ type: 'object',
+ ref: 'User'
+ },
+ },
+ required: ['id', 'user'],
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/server-info.ts b/packages/backend/src/server/api/endpoints/server-info.ts
index c8cb63e6b3..079f2d7f1d 100644
--- a/packages/backend/src/server/api/endpoints/server-info.ts
+++ b/packages/backend/src/server/api/endpoints/server-info.ts
@@ -15,6 +15,53 @@ export const meta = {
cacheSec: 60 * 1,
tags: ['meta'],
+ res: {
+ type: 'object',
+ optional: false, nullable: false,
+ properties: {
+ machine: {
+ type: 'string',
+ nullable: false,
+ },
+ cpu: {
+ type: 'object',
+ nullable: false,
+ properties: {
+ model: {
+ type: 'string',
+ nullable: false,
+ },
+ cores: {
+ type: 'number',
+ nullable: false,
+ },
+ },
+ },
+ mem: {
+ type: 'object',
+ properties: {
+ total: {
+ type: 'number',
+ nullable: false,
+ },
+ },
+ },
+ fs: {
+ type: 'object',
+ nullable: false,
+ properties: {
+ total: {
+ type: 'number',
+ nullable: false,
+ },
+ used: {
+ type: 'number',
+ nullable: false,
+ },
+ },
+ },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/test.ts b/packages/backend/src/server/api/endpoints/test.ts
index 6d6d44f752..949867c572 100644
--- a/packages/backend/src/server/api/endpoints/test.ts
+++ b/packages/backend/src/server/api/endpoints/test.ts
@@ -12,6 +12,30 @@ export const meta = {
description: 'Endpoint for testing input validation.',
requireCredential: false,
+
+ res: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id'
+ },
+ required: {
+ type: 'boolean',
+ },
+ string: {
+ type: 'string',
+ },
+ default: {
+ type: 'string',
+ },
+ nullableDefault: {
+ type: 'string',
+ default: 'hello',
+ nullable: true,
+ },
+ }
+ }
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/users/achievements.ts b/packages/backend/src/server/api/endpoints/users/achievements.ts
index e4845d57bf..d6ad718dfa 100644
--- a/packages/backend/src/server/api/endpoints/users/achievements.ts
+++ b/packages/backend/src/server/api/endpoints/users/achievements.ts
@@ -10,6 +10,21 @@ import { DI } from '@/di-symbols.js';
export const meta = {
requireCredential: true,
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ name: {
+ type: 'string',
+ },
+ unlockedAt: {
+ type: 'number',
+ },
+ },
+ },
+ }
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts
index ae8b4e9b81..985141515e 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts
@@ -25,6 +25,35 @@ export const meta = {
id: '7bc05c21-1d7a-41ae-88f1-66820f4dc686',
},
},
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ nullable: false,
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ createdAt: {
+ type: 'string',
+ format: 'date-time',
+ },
+ userId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ user: {
+ type: 'object',
+ ref: 'User',
+ },
+ withReplies: {
+ type: 'boolean',
+ },
+ },
+ },
+ },
} as const;
export const paramDef = {