summaryrefslogtreecommitdiff
path: root/packages/backend/src/models/json-schema
diff options
context:
space:
mode:
authoryupix <yupi0982@outlook.jp>2023-12-06 15:47:57 +0900
committerGitHub <noreply@github.com>2023-12-06 15:47:57 +0900
commite42c91dee77bbbe7bff848aac51ab7ec0cd3fe6e (patch)
tree35269a2de3a0d4dc8daad5870bd55e7e340ab594 /packages/backend/src/models/json-schema
parentchore: hide thumbnail if website is sensitive (#12581) (diff)
downloadsharkey-e42c91dee77bbbe7bff848aac51ab7ec0cd3fe6e.tar.gz
sharkey-e42c91dee77bbbe7bff848aac51ab7ec0cd3fe6e.tar.bz2
sharkey-e42c91dee77bbbe7bff848aac51ab7ec0cd3fe6e.zip
feat: Roleに関するSchemaを追加 (#12572)
* feat: Roleに関連するschemaを追加 * feat: 新しいRoleSchemaを使うように * chore: misskey.jsのデータを更新 * chore: misskey-js.api.mdを更新
Diffstat (limited to 'packages/backend/src/models/json-schema')
-rw-r--r--packages/backend/src/models/json-schema/role.ts157
-rw-r--r--packages/backend/src/models/json-schema/user.ts36
2 files changed, 158 insertions, 35 deletions
diff --git a/packages/backend/src/models/json-schema/role.ts b/packages/backend/src/models/json-schema/role.ts
new file mode 100644
index 0000000000..dd2f32b14d
--- /dev/null
+++ b/packages/backend/src/models/json-schema/role.ts
@@ -0,0 +1,157 @@
+const rolePolicyValue = {
+ type: 'object',
+ properties: {
+ value: {
+ oneOf: [
+ {
+ type: 'integer',
+ optional: false, nullable: false,
+ },
+ {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ ],
+ },
+ priority: {
+ type: 'integer',
+ optional: false, nullable: false,
+ },
+ useDefault: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ },
+} as const;
+
+export const packedRoleLiteSchema = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'id',
+ example: 'xxxxxxxxxx',
+ },
+ name: {
+ type: 'string',
+ optional: false, nullable: false,
+ example: 'New Role',
+ },
+ color: {
+ type: 'string',
+ optional: false, nullable: true,
+ example: '#000000',
+ },
+ iconUrl: {
+ type: 'string',
+ optional: false, nullable: true,
+ },
+ description: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ isModerator: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ example: false,
+ },
+ isAdministrator: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ example: false,
+ },
+ displayOrder: {
+ type: 'integer',
+ optional: false, nullable: false,
+ example: 0,
+ },
+ },
+} as const;
+
+export const packedRoleSchema = {
+ type: 'object',
+ allOf: [
+ {
+ type: 'object',
+ ref: 'RoleLite',
+ },
+ {
+ type: 'object',
+ properties: {
+ createdAt: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'date-time',
+ },
+ updatedAt: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'date-time',
+ },
+ target: {
+ type: 'string',
+ optional: false, nullable: false,
+ enum: ['manual', 'conditional'],
+ },
+ condFormula: {
+ type: 'object',
+ optional: false, nullable: false,
+ },
+ isPublic: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ example: false,
+ },
+ isExplorable: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ example: false,
+ },
+ asBadge: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ example: false,
+ },
+ canEditMembersByModerator: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ example: false,
+ },
+ policies: {
+ type: 'object',
+ optional: false, nullable: false,
+ properties: {
+ pinLimit: rolePolicyValue,
+ canInvite: rolePolicyValue,
+ clipLimit: rolePolicyValue,
+ canHideAds: rolePolicyValue,
+ inviteLimit: rolePolicyValue,
+ antennaLimit: rolePolicyValue,
+ gtlAvailable: rolePolicyValue,
+ ltlAvailable: rolePolicyValue,
+ webhookLimit: rolePolicyValue,
+ canPublicNote: rolePolicyValue,
+ userListLimit: rolePolicyValue,
+ wordMuteLimit: rolePolicyValue,
+ alwaysMarkNsfw: rolePolicyValue,
+ canSearchNotes: rolePolicyValue,
+ driveCapacityMb: rolePolicyValue,
+ rateLimitFactor: rolePolicyValue,
+ inviteLimitCycle: rolePolicyValue,
+ noteEachClipsLimit: rolePolicyValue,
+ inviteExpirationTime: rolePolicyValue,
+ canManageCustomEmojis: rolePolicyValue,
+ userEachUserListsLimit: rolePolicyValue,
+ canManageAvatarDecorations: rolePolicyValue,
+ canUseTranslator: rolePolicyValue,
+ },
+ },
+ usersCount: {
+ type: 'integer',
+ optional: false, nullable: false,
+ },
+ },
+ },
+ ],
+} as const;
diff --git a/packages/backend/src/models/json-schema/user.ts b/packages/backend/src/models/json-schema/user.ts
index 2621e7e6c0..c6b2707b80 100644
--- a/packages/backend/src/models/json-schema/user.ts
+++ b/packages/backend/src/models/json-schema/user.ts
@@ -329,41 +329,7 @@ export const packedUserDetailedNotMeOnlySchema = {
items: {
type: 'object',
nullable: false, optional: false,
- properties: {
- id: {
- type: 'string',
- nullable: false, optional: false,
- format: 'id',
- },
- name: {
- type: 'string',
- nullable: false, optional: false,
- },
- color: {
- type: 'string',
- nullable: true, optional: false,
- },
- iconUrl: {
- type: 'string',
- nullable: true, optional: false,
- },
- description: {
- type: 'string',
- nullable: false, optional: false,
- },
- isModerator: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- isAdministrator: {
- type: 'boolean',
- nullable: false, optional: false,
- },
- displayOrder: {
- type: 'number',
- nullable: false, optional: false,
- },
- },
+ ref: 'RoleLite',
},
},
memo: {