From 5792be7e57e76bd8ee4735f438e78f1f51cead41 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 21 Jun 2024 18:47:46 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20indent-style=E3=82=92tab=E3=81=8B?= =?UTF-8?q?=E3=82=89space=E3=81=AB=E5=A4=89=E3=81=88=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 2 +- endpoints/forms.tsp | 596 ++++++++++++++++++++++---------------------- endpoints/users.tsp | 56 ++--- models/errors.tsp | 14 +- models/form.tsp | 94 +++---- models/user.tsp | 10 +- 6 files changed, 386 insertions(+), 386 deletions(-) diff --git a/.editorconfig b/.editorconfig index fabd25d..41ddf64 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,7 +2,7 @@ root = true [*.tsp] indent_size = 2 -indent_style = tab +indent_style = space end_of_line = lf insert_final_newline = true charset = utf-8 diff --git a/endpoints/forms.tsp b/endpoints/forms.tsp index 54c739a..57db0a7 100644 --- a/endpoints/forms.tsp +++ b/endpoints/forms.tsp @@ -12,330 +12,330 @@ using TypeSpec.Rest; @tag("Forms") @route("/forms") namespace Forms { - /** - * フォームを新しく作ります。 - * - * 作られたフォームのIDがJSONとして返却され、作成されたフォームへのURLを含むHeaderが返されます。 - * - */ - @post - @summary("フォームの新規作成") - op create( - @header - contentType: "application/json", + /** + * フォームを新しく作ります。 + * + * 作られたフォームのIDがJSONとして返却され、作成されたフォームへのURLを含むHeaderが返されます。 + * + */ + @post + @summary("フォームの新規作成") + op create( + @header + contentType: "application/json", - @body body: { - title: string; - description?: string; - }, - ): { - @statusCode statusCode: 201; - @header Location: string; - @body body: { - id: uint32; - }; - } | { - @statusCode statusCode: 400 | 401 | 403 | 500; - @body body: Error; - }; + @body body: { + title: string; + description?: string; + }, + ): { + @statusCode statusCode: 201; + @header Location: string; + @body body: { + id: uint32; + }; + } | { + @statusCode statusCode: 400 | 401 | 403 | 500; + @body body: Error; + }; - /** - * フォームの一覧を返す。 - * - * このエンドポイントでは最小限のフォーム情報を含むリストが返されます。 - * - * また、取得パラメータとしてlimitとoffsetを指定し、取得件数を絞り込むことができます。 - * レスポンス内容はid基準とし、昇順ソートしたものになります。 - * ※各フォームの詳細情報などは別APIを利用することを想定しています。 - */ - @get - @summary("フォームの一覧取得") - op list( - @doc("取得件数の下限値 例えば、offsetを1とすると2件目からのデータが取得できます。") - @query - offset: uint32, + /** + * フォームの一覧を返す。 + * + * このエンドポイントでは最小限のフォーム情報を含むリストが返されます。 + * + * また、取得パラメータとしてlimitとoffsetを指定し、取得件数を絞り込むことができます。 + * レスポンス内容はid基準とし、昇順ソートしたものになります。 + * ※各フォームの詳細情報などは別APIを利用することを想定しています。 + */ + @get + @summary("フォームの一覧取得") + op list( + @doc("取得件数の下限値 例えば、offsetを1とすると2件目からのデータが取得できます。") + @query + offset: uint32, - @doc("取得件数の上限値 例えば、limitを10とすると10番目までのデータが取得できます。") - @minValue(1) - @query - limit: uint32, - ): { - @statusCode statusCode: 200; - @body body: MinimalForm[]; - } | { - @statusCode statusCode: 400 | 401 | 500; - @body body: Error; - }; + @doc("取得件数の上限値 例えば、limitを10とすると10番目までのデータが取得できます。") + @minValue(1) + @query + limit: uint32, + ): { + @statusCode statusCode: 200; + @body body: MinimalForm[]; + } | { + @statusCode statusCode: 400 | 401 | 500; + @body body: Error; + }; - @route("/{formId}") - namespace IndividualForm { - @get - @summary("フォームの詳細取得") - op get(@path formId: uint32): { - @statusCode statusCode: 200; - @body body: Form; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @route("/{formId}") + namespace IndividualForm { + @get + @summary("フォームの詳細取得") + op get(@path formId: uint32): { + @statusCode statusCode: 200; + @body body: Form; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @delete - @summary("フォームの削除") - op delete(@path formId: uint32): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @delete + @summary("フォームの削除") + op delete(@path formId: uint32): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - /** - * フォームの設定値を変更するエンドポイント。 - * 回答可能期間を新たに設定する場合、start_atとend_atの両方を指定してください。 - */ - @patch - @summary("フォームの値を更新する") - op update( - @path formId: uint32, - @query title?: string, - @query description?: string, - @query start_at?: utcDateTime, - @query end_at?: utcDateTime, - @query webhook_url?: url, + /** + * フォームの設定値を変更するエンドポイント。 + * 回答可能期間を新たに設定する場合、start_atとend_atの両方を指定してください。 + */ + @patch + @summary("フォームの値を更新する") + op update( + @path formId: uint32, + @query title?: string, + @query description?: string, + @query start_at?: utcDateTime, + @query end_at?: utcDateTime, + @query webhook_url?: url, - /** - * 各回答に対して自動でつけられるタイトルを設定します。 - * `$[question_id]`と指定することで、`question_id`の質問の回答をタイトルに含めることができます。 - */ - @query default_answer_title?: string, + /** + * 各回答に対して自動でつけられるタイトルを設定します。 + * `$[question_id]`と指定することで、`question_id`の質問の回答をタイトルに含めることができます。 + */ + @query default_answer_title?: string, - @query visibility?: Visibility, - ): { - @statusCode statusCode: 200; - @body body: Form; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @query visibility?: Visibility, + ): { + @statusCode statusCode: 200; + @body body: Form; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @route("/questions") - @summary("フォームの質問一覧取得") - op listQuestions(@path formId: uint32): { - @statusCode statusCode: 200; - @body body: Question[]; - } | { - @statusCode statusCode: 400 | 401 | 404 | 500; - @body body: Error; - }; + @route("/questions") + @summary("フォームの質問一覧取得") + op listQuestions(@path formId: uint32): { + @statusCode statusCode: 200; + @body body: Question[]; + } | { + @statusCode statusCode: 400 | 401 | 404 | 500; + @body body: Error; + }; - @route("/answers") - @summary("フォームの回答一覧取得") - op listAnswers(@path formId: uint32): { - @statusCode statusCode: 200; - @body body: Answer[]; - } | { - @statusCode statusCode: 400 | 401 | 404 | 500; - @body body: Error; - }; - } + @route("/answers") + @summary("フォームの回答一覧取得") + op listAnswers(@path formId: uint32): { + @statusCode statusCode: 200; + @body body: Answer[]; + } | { + @statusCode statusCode: 400 | 401 | 404 | 500; + @body body: Error; + }; + } - @route("/questions") - namespace Questions { - @post - @summary("質問の新規作成") - op create( - @header - contentType: "application/json", + @route("/questions") + namespace Questions { + @post + @summary("質問の新規作成") + op create( + @header + contentType: "application/json", - @body body: { - form_id: uint32; - questions: Question[]; - }, - ): { - @statusCode statusCode: 201; - @body body: { - id: uint32; - }; - } | { - @statusCode statusCode: 400 | 401 | 403 | 500; - @body body: Error; - }; + @body body: { + form_id: uint32; + questions: Question[]; + }, + ): { + @statusCode statusCode: 201; + @body body: { + id: uint32; + }; + } | { + @statusCode statusCode: 400 | 401 | 403 | 500; + @body body: Error; + }; - @delete - @summary("質問の削除") - op delete( - @body body: { - question_id: uint32; - }, - ): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @delete + @summary("質問の削除") + op delete( + @body body: { + question_id: uint32; + }, + ): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @put - @summary("質問の置き換え") - op replace( - @body body: { - form_id: uint32; - questions: Question[]; - }, - ): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; - } + @put + @summary("質問の置き換え") + op replace( + @body body: { + form_id: uint32; + questions: Question[]; + }, + ): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; + } - @route("/answers") - namespace Answers { - @get - @summary("回答の取得") - @route("/{answerId}") - op get(@path answerId: uint32): { - @statusCode statusCode: 200; - @body body: Answer; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @route("/answers") + namespace Answers { + @get + @summary("回答の取得") + @route("/{answerId}") + op get(@path answerId: uint32): { + @statusCode statusCode: 200; + @body body: Answer; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @get - @summary("回答の一覧取得") - op list(): { - @statusCode statusCode: 200; - @body body: Answer[]; - } | { - @statusCode statusCode: 400 | 401 | 403 | 500; - @body body: Error; - }; + @get + @summary("回答の一覧取得") + op list(): { + @statusCode statusCode: 200; + @body body: Answer[]; + } | { + @statusCode statusCode: 400 | 401 | 403 | 500; + @body body: Error; + }; - @post - @summary("指定されたフォームに回答を追加する") - op create( - @header - contentType: "application/json", + @post + @summary("指定されたフォームに回答を追加する") + op create( + @header + contentType: "application/json", - @body body: { - form_id: uint32; - answers: RealAnswer[]; - }, - ): { - @statusCode statusCode: 201; - @body body: { - id: uint32; - }; - } | { - @statusCode statusCode: 400 | 401 | 403 | 500; - @body body: Error; - }; + @body body: { + form_id: uint32; + answers: RealAnswer[]; + }, + ): { + @statusCode statusCode: 201; + @body body: { + id: uint32; + }; + } | { + @statusCode statusCode: 400 | 401 | 403 | 500; + @body body: Error; + }; - @route("/labels") - namespace Labels { - @post - @summary("フォームの回答につけられるラベルを作成する") - op createLabel( - @header - contentType: "application/json", + @route("/labels") + namespace Labels { + @post + @summary("フォームの回答につけられるラベルを作成する") + op createLabel( + @header + contentType: "application/json", - @body body: Label, - ): { - @statusCode statusCode: 201; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @body body: Label, + ): { + @statusCode statusCode: 201; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @delete - @summary("フォームの回答につけられるラベルを削除する") - op deleteLabel( - @body body: { - id: uint32; - }, - ): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; - } + @delete + @summary("フォームの回答につけられるラベルを削除する") + op deleteLabel( + @body body: { + id: uint32; + }, + ): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; + } - @route("/comment") - namespace Comment { - @post - @summary("回答にコメントを追加する") - op create( - @header - contentType: "application/json", + @route("/comment") + namespace Comment { + @post + @summary("回答にコメントを追加する") + op create( + @header + contentType: "application/json", - @body body: { - answer_id: uint32; - content: string; - }, - ): { - @statusCode statusCode: 201; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @body body: { + answer_id: uint32; + content: string; + }, + ): { + @statusCode statusCode: 201; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @delete - @summary("回答のコメントを削除する") - op delete( - @body body: { - comment_id: uint32; - }, - ): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @delete + @summary("回答のコメントを削除する") + op delete( + @body body: { + comment_id: uint32; + }, + ): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @patch - @summary("回答のコメントを更新する") - op update( - @body body: { - comment_id: uint32; - content: string; - }, - ): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; - } - } + @patch + @summary("回答のコメントを更新する") + op update( + @body body: { + comment_id: uint32; + content: string; + }, + ): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; + } + } - @route("/labels") - namespace Labels { - @post - @summary("フォームにつけられるラベルを作成する") - op create( - @header - contentType: "application/json", + @route("/labels") + namespace Labels { + @post + @summary("フォームにつけられるラベルを作成する") + op create( + @header + contentType: "application/json", - @body body: Label, - ): { - @statusCode statusCode: 201; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @body body: Label, + ): { + @statusCode statusCode: 201; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @delete - @summary("フォームにつけられるラベルを削除する") - op delete( - @body body: { - id: uint32; - }, - ): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; - } + @delete + @summary("フォームにつけられるラベルを削除する") + op delete( + @body body: { + id: uint32; + }, + ): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; + } } diff --git a/endpoints/users.tsp b/endpoints/users.tsp index 35b93fc..80fd4e7 100644 --- a/endpoints/users.tsp +++ b/endpoints/users.tsp @@ -11,34 +11,34 @@ namespace SeichiPortalApiSchema; @tag("Users") @route("/users") namespace Users { - @get - @summary("自身のユーザー情報の取得") - op get(): { - @statusCode statusCode: 200; - @body body: User; - } | { - @statusCode statusCode: 400 | 401 | 403 | 500; - @body body: Error; - }; + @get + @summary("自身のユーザー情報の取得") + op get(): { + @statusCode statusCode: 200; + @body body: User; + } | { + @statusCode statusCode: 400 | 401 | 403 | 500; + @body body: Error; + }; - @patch - @summary("ユーザー情報を更新する") - @route("/{uuid}") - op update(@path uuid: string, @query role: Role): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 400 | 401 | 403 | 404 | 500; - @body body: Error; - }; + @patch + @summary("ユーザー情報を更新する") + @route("/{uuid}") + op update(@path uuid: string, @query role: Role): { + @statusCode statusCode: 200; + } | { + @statusCode statusCode: 400 | 401 | 403 | 404 | 500; + @body body: Error; + }; - @get - @summary("ユーザー一覧の取得") - @route("/list") - op list(): { - @statusCode statusCode: 200; - @body body: User[]; - } | { - @statusCode statusCode: 400 | 401 | 403 | 500; - @body body: Error; - }; + @get + @summary("ユーザー一覧の取得") + @route("/list") + op list(): { + @statusCode statusCode: 200; + @body body: User[]; + } | { + @statusCode statusCode: 400 | 401 | 403 | 500; + @body body: Error; + }; } diff --git a/models/errors.tsp b/models/errors.tsp index 2b98f5a..f34443c 100644 --- a/models/errors.tsp +++ b/models/errors.tsp @@ -1,12 +1,12 @@ enum ErrorCode { - FORM_NOT_FOUND, - ANSWER_NOT_FOUND, - OUT_OF_PERIOD, - DO_NOT_HAVE_PERMISSION_TO_POST_FORM_COMMENT, - INTERNAL_SERVER_ERROR, + FORM_NOT_FOUND, + ANSWER_NOT_FOUND, + OUT_OF_PERIOD, + DO_NOT_HAVE_PERMISSION_TO_POST_FORM_COMMENT, + INTERNAL_SERVER_ERROR, } model Error { - errorCode: ErrorCode; - reason: string; + errorCode: ErrorCode; + reason: string; } diff --git a/models/form.tsp b/models/form.tsp index e1768cc..322ec02 100644 --- a/models/form.tsp +++ b/models/form.tsp @@ -1,6 +1,6 @@ model ResponsePeriod { - start_at: utcDateTime; - end_at: utcDateTime; + start_at: utcDateTime; + end_at: utcDateTime; } /** @@ -9,10 +9,10 @@ model ResponsePeriod { * 設定権限を持たないユーザーが必要な情報を取得するために使用することを想定 */ model MinimalForm { - id: uint32; - title: string; - description?: string; - response_period: ResponsePeriod; + id: uint32; + title: string; + description?: string; + response_period: ResponsePeriod; } /** @@ -20,8 +20,8 @@ model MinimalForm { * PRIVATE: 非公開 */ enum Visibility { - PUBLIC: "PUBLIC", - PRIVATE: "PRIVATE", + PUBLIC: "PUBLIC", + PRIVATE: "PRIVATE", } /** @@ -30,63 +30,63 @@ enum Visibility { * SINGLE: 単一選択 */ enum QuestionType { - TEXT: "TEXT", - SINGLE: "SINGLE", - MULTIPLE: "MULTIPLE", + TEXT: "TEXT", + SINGLE: "SINGLE", + MULTIPLE: "MULTIPLE", } model Question { - id: uint32; - title: string; - description: string; - question_type: QuestionType; - choices: string[]; - is_required: boolean; + id: uint32; + title: string; + description: string; + question_type: QuestionType; + choices: string[]; + is_required: boolean; } model Form { - id: uint32; - title: string; - description?: string; - settings: { - response_period: ResponsePeriod; + id: uint32; + title: string; + description?: string; + settings: { + response_period: ResponsePeriod; - /** - * フォームに関する何らかのアクションが行われたときに通知を行うURL - */ - webhook_url: url; + /** + * フォームに関する何らかのアクションが行われたときに通知を行うURL + */ + webhook_url: url; - default_title: string; - visibility: Visibility; - }; - metadata: { - created_at: utcDateTime; - updated_at: utcDateTime; - }; - questions: Question[]; + default_title: string; + visibility: Visibility; + }; + metadata: { + created_at: utcDateTime; + updated_at: utcDateTime; + }; + questions: Question[]; } model RealAnswer { - @visibility("read") - question_id: uint32; + @visibility("read") + question_id: uint32; - answer: string; + answer: string; } model Answer { - @visibility("read") - id: uint32; + @visibility("read") + id: uint32; - user: User; - form_id: uint32; - timestamp: utcDateTime; - title: string; - answers: RealAnswer[]; + user: User; + form_id: uint32; + timestamp: utcDateTime; + title: string; + answers: RealAnswer[]; } model Label { - @visibility("read") - id: uint32; + @visibility("read") + id: uint32; - name: string; + name: string; } diff --git a/models/user.tsp b/models/user.tsp index 9cecee1..3293047 100644 --- a/models/user.tsp +++ b/models/user.tsp @@ -1,10 +1,10 @@ enum Role { - STANDARD_USER, - ADMINISTRATOR, + STANDARD_USER, + ADMINISTRATOR, } model User { - uuid: string; - name: string; - role: Role; + uuid: string; + name: string; + role: Role; }