Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: Proxyアカウントをシステムアカウントにしてわかりやすくした #15025

Closed

Conversation

sakuhanight
Copy link
Contributor

What

  • ProxyAccountシステムアカウントとして作成するようにした
  • システムアカウントのプロフィールページにシステムアカウントであることを明示
  • ProxyAccountの編集用にadmin/update-proxy-accountエンドポイントを追加
  • ProxyAccountの設定画面でアバター、バナー、名前、概要を編集可能にした

Why

#14857

  • Proxyアカウントがシステムアカウント的立場でありながら、ログインすることが必要となっており、フォロワー限定投稿を見れてしまう問題があった。
  • Proxyアカウントを示すフラグはない(metaにはidが乗っているが、一般人は見ない)ため、成りすましが可能だった。

Additional info (optional)

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

sakuhanight and others added 21 commits November 18, 2024 15:52
…トを追加

ユーザー単位でリアクションをブロックするため、blocking-reaction-userエンドポイントを追加。
ロジックは別途実装する。
不要なonModuleInit Imprementsを除去
@github-actions github-actions bot added packages/frontend Client side specific issue/PR packages/backend Server side specific issue/PR packages/misskey-js packages/backend:test labels Nov 22, 2024
Copy link

codecov bot commented Nov 22, 2024

Codecov Report

Attention: Patch coverage is 46.94590% with 608 lines in your changes missing coverage. Please review.

Project coverage is 40.67%. Comparing base (0df6c79) to head (fde1733).
Report is 23 commits behind head on develop.

Files with missing lines Patch % Lines
...server/api/endpoints/admin/update-proxy-account.ts 43.42% 198 Missing ⚠️
packages/frontend/src/pages/admin/settings.vue 0.00% 122 Missing ⚠️
packages/backend/src/core/UserBlockingService.ts 13.40% 84 Missing ⚠️
...ackages/frontend/src/pages/settings/mute-block.vue 0.00% 48 Missing ⚠️
...ver/api/endpoints/blocking-reaction-user/delete.ts 58.03% 47 Missing ⚠️
...ver/api/endpoints/blocking-reaction-user/create.ts 58.55% 46 Missing ⚠️
...erver/api/endpoints/blocking-reaction-user/list.ts 68.25% 20 Missing ⚠️
packages/backend/src/core/ProxyAccountService.ts 38.70% 19 Missing ⚠️
packages/frontend/src/scripts/get-user-menu.ts 0.00% 14 Missing ⚠️
packages/backend/src/core/QueryService.ts 20.00% 4 Missing ⚠️
... and 4 more
Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #15025      +/-   ##
===========================================
+ Coverage    39.97%   40.67%   +0.69%     
===========================================
  Files         1561     1571      +10     
  Lines       197313   204637    +7324     
  Branches      3622     3365     -257     
===========================================
+ Hits         78878    83232    +4354     
- Misses      117829   120794    +2965     
- Partials       606      611       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


🚨 Try these New Features:

Copy link
Contributor

このPRによるapi.jsonの差分

差分はこちら
--- base
+++ head
@@ -4896,6 +4896,303 @@
         }
       }
     },
+    "/admin/update-proxy-account": {
+      "post": {
+        "operationId": "admin___update-proxy-account",
+        "summary": "admin/update-proxy-account",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:update-proxy-account*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/update-proxy-account.ts"
+        },
+        "tags": [
+          "admin"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "name": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "minLength": 1,
+                    "maxLength": 50
+                  },
+                  "description": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "minLength": 1,
+                    "maxLength": 1500
+                  },
+                  "avatarId": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "format": "misskey:id"
+                  },
+                  "bannerId": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "format": "misskey:id"
+                  }
+                }
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "OK (with results)",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "object",
+                  "$ref": "#/components/schemas/UserDetailed"
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_AVATAR": {
+                    "value": {
+                      "error": {
+                        "message": "No such avatar file.",
+                        "code": "NO_SUCH_AVATAR",
+                        "id": "539f3a45-f215-4f81-a9a8-31293640207f"
+                      }
+                    }
+                  },
+                  "NO_SUCH_BANNER": {
+                    "value": {
+                      "error": {
+                        "message": "No such banner file.",
+                        "code": "NO_SUCH_BANNER",
+                        "id": "0d8f5629-f210-41c2-9433-735831a58595"
+                      }
+                    }
+                  },
+                  "AVATAR_NOT_AN_IMAGE": {
+                    "value": {
+                      "error": {
+                        "message": "The file specified as an avatar is not an image.",
+                        "code": "AVATAR_NOT_AN_IMAGE",
+                        "id": "f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191"
+                      }
+                    }
+                  },
+                  "BANNER_NOT_AN_IMAGE": {
+                    "value": {
+                      "error": {
+                        "message": "The file specified as a banner is not an image.",
+                        "code": "BANNER_NOT_AN_IMAGE",
+                        "id": "75aedb19-2afd-4e6d-87fc-67941256fa60"
+                      }
+                    }
+                  },
+                  "NO_SUCH_PAGE": {
+                    "value": {
+                      "error": {
+                        "message": "No such page.",
+                        "code": "NO_SUCH_PAGE",
+                        "id": "8e01b590-7eb9-431b-a239-860e086c408e"
+                      }
+                    }
+                  },
+                  "INVALID_REGEXP": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid Regular Expression.",
+                        "code": "INVALID_REGEXP",
+                        "id": "0d786918-10df-41cd-8f33-8dec7d9a89a5"
+                      }
+                    }
+                  },
+                  "TOO_MANY_MUTED_WORDS": {
+                    "value": {
+                      "error": {
+                        "message": "Too many muted words.",
+                        "code": "TOO_MANY_MUTED_WORDS",
+                        "id": "010665b1-a211-42d2-bc64-8f6609d79785"
+                      }
+                    }
+                  },
+                  "NO_SUCH_USER": {
+                    "value": {
+                      "error": {
+                        "message": "No such user.",
+                        "code": "NO_SUCH_USER",
+                        "id": "fcd2eef9-a9b2-4c4f-8624-038099e90aa5"
+                      }
+                    }
+                  },
+                  "URI_NULL": {
+                    "value": {
+                      "error": {
+                        "message": "User ActivityPup URI is null.",
+                        "code": "URI_NULL",
+                        "id": "bf326f31-d430-4f97-9933-5d61e4d48a23"
+                      }
+                    }
+                  },
+                  "FORBIDDEN_TO_SET_YOURSELF": {
+                    "value": {
+                      "error": {
+                        "message": "You can't set yourself as your own alias.",
+                        "code": "FORBIDDEN_TO_SET_YOURSELF",
+                        "id": "25c90186-4ab0-49c8-9bba-a1fa6c202ba4"
+                      }
+                    }
+                  },
+                  "RESTRICTED_BY_ROLE": {
+                    "value": {
+                      "error": {
+                        "message": "This feature is restricted by your role.",
+                        "code": "RESTRICTED_BY_ROLE",
+                        "id": "8feff0ba-5ab5-585b-31f4-4df816663fad"
+                      }
+                    }
+                  },
+                  "YOUR_NAME_CONTAINS_PROHIBITED_WORDS": {
+                    "value": {
+                      "error": {
+                        "message": "Your new name contains prohibited words.",
+                        "code": "YOUR_NAME_CONTAINS_PROHIBITED_WORDS",
+                        "id": "0b3f9f6a-2f4d-4b1f-9fb4-49d3a2fd7191",
+                        "httpStatusCode": 422
+                      }
+                    }
+                  },
+                  "ACCESS_DENIED": {
+                    "value": {
+                      "error": {
+                        "message": "Only administrators can edit members of the role.",
+                        "code": "ACCESS_DENIED",
+                        "id": "25b5bc31-dc79-4ebd-9bd2-c84978fd052c"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/admin/unset-user-avatar": {
       "post": {
         "operationId": "admin___unset-user-avatar",
@@ -20952,6 +21249,580 @@
         }
       }
     },
+    "/blocking-reaction-user/create": {
+      "post": {
+        "operationId": "blocking-reaction-user___create",
+        "summary": "blocking-reaction-user/create",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:blocks*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/blocking-reaction-user/create.ts"
+        },
+        "tags": [
+          "account"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "userId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  }
+                },
+                "required": [
+                  "userId"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "OK (with results)",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "object",
+                  "$ref": "#/components/schemas/UserDetailedNotMe"
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_USER": {
+                    "value": {
+                      "error": {
+                        "message": "No such user.",
+                        "code": "NO_SUCH_USER",
+                        "id": "7cc4f851-e2f1-4621-9633-ec9e1d00c01e"
+                      }
+                    }
+                  },
+                  "BLOCKEE_IS_YOURSELF": {
+                    "value": {
+                      "error": {
+                        "message": "Blockee is yourself.",
+                        "code": "BLOCKEE_IS_YOURSELF",
+                        "id": "88b19138-f28d-42c0-8499-6a31bbd0fdc6"
+                      }
+                    }
+                  },
+                  "ALREADY_BLOCKING": {
+                    "value": {
+                      "error": {
+                        "message": "You are already blocking that user.",
+                        "code": "ALREADY_BLOCKING",
+                        "id": "787fed64-acb9-464a-82eb-afbd745b9614"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "429": {
+            "description": "To many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/blocking-reaction-user/delete": {
+      "post": {
+        "operationId": "blocking-reaction-user___delete",
+        "summary": "blocking-reaction-user/delete",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:blocks*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/blocking-reaction-user/delete.ts"
+        },
+        "tags": [
+          "account"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "userId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  }
+                },
+                "required": [
+                  "userId"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "OK (with results)",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "object",
+                  "$ref": "#/components/schemas/UserDetailedNotMe"
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_USER": {
+                    "value": {
+                      "error": {
+                        "message": "No such user.",
+                        "code": "NO_SUCH_USER",
+                        "id": "8621d8bf-c358-4303-a066-5ea78610eb3f"
+                      }
+                    }
+                  },
+                  "BLOCKEE_IS_YOURSELF": {
+                    "value": {
+                      "error": {
+                        "message": "Blockee is yourself.",
+                        "code": "BLOCKEE_IS_YOURSELF",
+                        "id": "06f6fac6-524b-473c-a354-e97a40ae6eac"
+                      }
+                    }
+                  },
+                  "NOT_BLOCKING": {
+                    "value": {
+                      "error": {
+                        "message": "You are not blocking that user.",
+                        "code": "NOT_BLOCKING",
+                        "id": "291b2efa-60c6-45c0-9f6a-045c8f9b02cd"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "429": {
+            "description": "To many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/blocking-reaction-user/list": {
+      "post": {
+        "operationId": "blocking-reaction-user___list",
+        "summary": "blocking-reaction-user/list",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:blocks*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/blocking-reaction-user/list.ts"
+        },
+        "tags": [
+          "account"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "limit": {
+                    "type": "integer",
+                    "minimum": 1,
+                    "maximum": 100,
+                    "default": 30
+                  },
+                  "sinceId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "untilId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  }
+                }
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "OK (with results)",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "$ref": "#/components/schemas/Blocking"
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/channels/create": {
       "post": {
         "operationId": "channels___create",
@@ -77751,6 +78622,12 @@
           "isBlocked": {
             "type": "boolean"
           },
+          "isReactionBlocking": {
+            "type": "boolean"
+          },
+          "isReactionBlocked": {
+            "type": "boolean"
+          },
           "isMuted": {
             "type": "boolean"
           },
@@ -80325,13 +81202,21 @@
           "blockee": {
             "type": "object",
             "$ref": "#/components/schemas/UserDetailedNotMe"
+          },
+          "blockType": {
+            "type": "string",
+            "enum": [
+              "user",
+              "reaction"
+            ]
           }
         },
         "required": [
           "id",
           "createdAt",
           "blockeeId",
-          "blockee"
+          "blockee",
+          "blockType"
         ]
       },
       "Hashtag": {

Get diff files from Workflow Page

@sakuhanight
Copy link
Contributor Author

PR元を間違えたためPR出し直します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages/backend:test packages/backend Server side specific issue/PR packages/frontend Client side specific issue/PR packages/misskey-js
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant