From e13fb5736ceea913b595ac76c57d861f52535a91 Mon Sep 17 00:00:00 2001 From: kitsne241 Date: Sat, 25 Jan 2025 22:04:42 +0900 Subject: [PATCH] =?UTF-8?q?=E5=BF=85=E8=A6=81=E3=81=9D=E3=81=86=E3=81=AA?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=85=A8=E3=81=A6=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/handler/api.gen.go | 2 + backend/model/event.go | 2 +- frontend/env.d.ts | 2 + frontend/src/api/schema.d.ts | 2402 +++++++++++++++++----------------- frontend/src/lib/global.d.ts | 7 - openapi.yaml | 492 +++---- 6 files changed, 1456 insertions(+), 1451 deletions(-) delete mode 100644 frontend/src/lib/global.d.ts diff --git a/backend/handler/api.gen.go b/backend/handler/api.gen.go index 9b258f3..52d27fa 100644 --- a/backend/handler/api.gen.go +++ b/backend/handler/api.gen.go @@ -75,6 +75,7 @@ type Event struct { OrganizerTraqId string `json:"organizer_traq_id"` TimeEnd time.Time `json:"time_end"` TimeStart time.Time `json:"time_start"` + DisplayColor string `json:"display_color"` } // Option defines model for Option. @@ -101,6 +102,7 @@ type PostEventRequest struct { Name string `json:"name"` TimeEnd time.Time `json:"time_end"` TimeStart time.Time `json:"time_start"` + DisplayColor string `json:"display_color"` } // PostOptionRequest defines model for PostOptionRequest. diff --git a/backend/model/event.go b/backend/model/event.go index b903841..2237938 100644 --- a/backend/model/event.go +++ b/backend/model/event.go @@ -11,10 +11,10 @@ type Event struct { Name string Description string Location string - DisplayColor string TimeStart time.Time TimeEnd time.Time CampID uint OrganizerTraqID string ByStaff bool + DisplayColor string } diff --git a/frontend/env.d.ts b/frontend/env.d.ts index a9de108..9ca920e 100644 --- a/frontend/env.d.ts +++ b/frontend/env.d.ts @@ -8,6 +8,7 @@ type EventParams = { time_end: string camp_id: number create_as_staff: boolean + display_color: string } type Event = { @@ -20,6 +21,7 @@ type Event = { camp_id: number organizer_traq_id: string by_staff: true + display_color: string } type OptionParams = { diff --git a/frontend/src/api/schema.d.ts b/frontend/src/api/schema.d.ts index 03b0980..7d222f9 100644 --- a/frontend/src/api/schema.d.ts +++ b/frontend/src/api/schema.d.ts @@ -4,1214 +4,1216 @@ */ export interface paths { - "/api/camps": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 合宿の一覧を取得 */ - get: operations["getCamps"]; - put?: never; - /** 合宿を作成 */ - post: operations["postCamp"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/camps/default": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** デフォルトの合宿を取得 */ - get: operations["getDefaultCamp"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/camps/{camp_id}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 合宿の詳細を取得 */ - get: operations["getCamp"]; - /** 合宿を更新 */ - put: operations["putCamp"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/events": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** イベントの一覧を取得 */ - get: operations["getEvents"]; - put?: never; - /** イベントを作成 */ - post: operations["postEvent"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/events/{event_id}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** イベントの詳細を取得 */ - get: operations["getEvent"]; - /** イベントを更新 */ - put: operations["putEvent"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/events/{event_id}/register": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** イベントに参加 */ - post: operations["registerEvent"]; - /** イベントへの参加をキャンセル */ - delete: operations["unregisterEvent"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/events/{event_id}/participants": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** イベントの参加者一覧を取得 */ - get: operations["getParticipants"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/me": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 自分の情報を取得 */ - get: operations["getMe"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/question_groups": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 質問グループの一覧を取得 */ - get: operations["getQuestionGroups"]; - put?: never; - /** 質問グループを作成 */ - post: operations["postQuestionGroup"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/questions": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 質問の一覧を取得 */ - get: operations["getQuestions"]; - put?: never; - /** 質問を作成 */ - post: operations["postQuestion"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/questions/{question_id}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 質問の詳細を取得 */ - get: operations["getQuestion"]; - /** 質問を更新 */ - put: operations["putQuestion"]; - post?: never; - /** 質問を削除 */ - delete: operations["deleteQuestion"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/options": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** 選択肢を作成 */ - post: operations["postOption"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/options/{option_id}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - /** 選択肢を更新 */ - put: operations["putOption"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/me/answers/{question_id}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 自分の回答を取得 */ - get: operations["getMyAnswer"]; - /** 回答を更新 */ - put: operations["putAnswer"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/me/budgets": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 自分の予算を取得 */ - get: operations["getMyBudget"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/staffs": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** 合宿係の一覧を取得 */ - get: operations["getStaffs"]; - put?: never; - /** 合宿係を追加 */ - post: operations["postStaff"]; - /** 合宿係を削除 */ - delete: operations["deleteStaff"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; + '/api/camps': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 合宿の一覧を取得 */ + get: operations['getCamps'] + put?: never + /** 合宿を作成 */ + post: operations['postCamp'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/camps/default': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** デフォルトの合宿を取得 */ + get: operations['getDefaultCamp'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/camps/{camp_id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 合宿の詳細を取得 */ + get: operations['getCamp'] + /** 合宿を更新 */ + put: operations['putCamp'] + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/events': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** イベントの一覧を取得 */ + get: operations['getEvents'] + put?: never + /** イベントを作成 */ + post: operations['postEvent'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/events/{event_id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** イベントの詳細を取得 */ + get: operations['getEvent'] + /** イベントを更新 */ + put: operations['putEvent'] + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/events/{event_id}/register': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** イベントに参加 */ + post: operations['registerEvent'] + /** イベントへの参加をキャンセル */ + delete: operations['unregisterEvent'] + options?: never + head?: never + patch?: never + trace?: never + } + '/api/events/{event_id}/participants': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** イベントの参加者一覧を取得 */ + get: operations['getParticipants'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/me': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 自分の情報を取得 */ + get: operations['getMe'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/question_groups': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 質問グループの一覧を取得 */ + get: operations['getQuestionGroups'] + put?: never + /** 質問グループを作成 */ + post: operations['postQuestionGroup'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/questions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 質問の一覧を取得 */ + get: operations['getQuestions'] + put?: never + /** 質問を作成 */ + post: operations['postQuestion'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/questions/{question_id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 質問の詳細を取得 */ + get: operations['getQuestion'] + /** 質問を更新 */ + put: operations['putQuestion'] + post?: never + /** 質問を削除 */ + delete: operations['deleteQuestion'] + options?: never + head?: never + patch?: never + trace?: never + } + '/api/options': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** 選択肢を作成 */ + post: operations['postOption'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/options/{option_id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + /** 選択肢を更新 */ + put: operations['putOption'] + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/me/answers/{question_id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 自分の回答を取得 */ + get: operations['getMyAnswer'] + /** 回答を更新 */ + put: operations['putAnswer'] + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/me/budgets': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 自分の予算を取得 */ + get: operations['getMyBudget'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/api/staffs': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** 合宿係の一覧を取得 */ + get: operations['getStaffs'] + put?: never + /** 合宿係を追加 */ + post: operations['postStaff'] + /** 合宿係を削除 */ + delete: operations['deleteStaff'] + options?: never + head?: never + patch?: never + trace?: never + } } -export type webhooks = Record; +export type webhooks = Record export interface components { - schemas: { - Camp: { - id: number; - display_id: string; - name: string; - is_draft: boolean; - description: string; - }; - PostCampRequest: { - display_id: string; - name: string; - is_draft: boolean; - description: string; - }; - Event: { - id: number; - name: string; - description: string; - location: string; - /** Format: date-time */ - time_start: string; - /** Format: date-time */ - time_end: string; - camp_id: number; - organizer_traq_id: string; - by_staff: boolean; - }; - PostEventRequest: { - name: string; - description: string; - location: string; - /** Format: date-time */ - time_start: string; - /** Format: date-time */ - time_end: string; - camp_id: number; - create_as_staff: boolean; - }; - User: { - traq_id: string; - is_staff: boolean; - }; - QuestionGroup: { - id: number; - name: string; - description: string | null; - /** Format: date-time */ - due: string; - questions: components["schemas"]["Question"][]; - camp_id: number; - }; - PostQuestionGroupRequest: { - name: string; - description: string | null; - /** Format: date-time */ - due: string; - camp_id: number; - }; - Question: { - id: number; - question_group_id: number; - title: string; - description: string | null; - /** @enum {string} */ - type: "single" | "multiple" | "free_text" | "free_number"; - is_public: boolean; - is_open: boolean; - options?: components["schemas"]["Option"][] | null; - }; - PostQuestionRequest: { - question_group_id: number; - title: string; - description: string; - /** @enum {string} */ - type: "single" | "multiple" | "free_text" | "free_number"; - is_public: boolean; - is_open: boolean; - }; - Option: { - id: number; - question_id: number; - content: string; - }; - PostOptionRequest: { - question_id: number; - content: string; - }; - Answer: { - id: number; - question_id: number; - user_traq_id: string; - content?: (string | string[]) | null; - }; - PutAnswerRequest: { - content?: (string | string[]) | null; - }; - Budget: { - id: number; - camp_id: number; - amount?: number | null; - }; - PostStaffRequest: { - traq_id: string; - }; - }; + schemas: { + Camp: { + id: number + display_id: string + name: string + is_draft: boolean + description: string + } + PostCampRequest: { + display_id: string + name: string + is_draft: boolean + description: string + } + Event: { + id: number + name: string + description: string + location: string + /** Format: date-time */ + time_start: string + /** Format: date-time */ + time_end: string + camp_id: number + organizer_traq_id: string + by_staff: boolean + display_color: string + } + PostEventRequest: { + name: string + description: string + location: string + /** Format: date-time */ + time_start: string + /** Format: date-time */ + time_end: string + camp_id: number + create_as_staff: boolean + display_color: string + } + User: { + traq_id: string + is_staff: boolean + } + QuestionGroup: { + id: number + name: string + description: string | null + /** Format: date-time */ + due: string + questions: components['schemas']['Question'][] + camp_id: number + } + PostQuestionGroupRequest: { + name: string + description: string | null + /** Format: date-time */ + due: string + camp_id: number + } + Question: { + id: number + question_group_id: number + title: string + description: string | null + /** @enum {string} */ + type: 'single' | 'multiple' | 'free_text' | 'free_number' + is_public: boolean + is_open: boolean + options?: components['schemas']['Option'][] | null + } + PostQuestionRequest: { + question_group_id: number + title: string + description: string + /** @enum {string} */ + type: 'single' | 'multiple' | 'free_text' | 'free_number' + is_public: boolean + is_open: boolean + } + Option: { + id: number + question_id: number + content: string + } + PostOptionRequest: { + question_id: number + content: string + } + Answer: { + id: number + question_id: number + user_traq_id: string + content?: (string | string[]) | null + } + PutAnswerRequest: { + content?: (string | string[]) | null + } + Budget: { + id: number + camp_id: number + amount?: number | null + } + PostStaffRequest: { + traq_id: string + } + } + responses: { + /** @description No Content */ + NoContent: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Bad Request */ + BadRequest: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + message?: string + } + } + } + /** @description Forbidden */ + Forbidden: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + message?: string + } + } + } + /** @description Not Found */ + NotFound: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + message?: string + } + } + } + /** @description Conflict */ + Conflict: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + message?: string + } + } + } + /** @description Internal Server Error */ + InternalServerError: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + /** @example Internal server error */ + message?: string + } + } + } + } + parameters: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User': string + /** @description 合宿ID */ + CampId: number + /** @description イベントID */ + EventId: number + /** @description 質問ID */ + QuestionId: number + /** @description 選択肢ID */ + OptionId: number + /** @description 回答ID */ + AnswerId: number + /** @description 合宿係のtraQ ID */ + StaffId: string + } + requestBodies: never + headers: never + pathItems: never +} +export type $defs = Record +export interface operations { + getCamps: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Camp'][] + } + } + 500: components['responses']['InternalServerError'] + } + } + postCamp: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostCampRequest'] + } + } + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['PostCampRequest'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 409: components['responses']['Conflict'] + 500: components['responses']['InternalServerError'] + } + } + getDefaultCamp: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Camp'] + } + } + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + getCamp: { + parameters: { + query?: never + header?: never + path: { + /** @description 合宿ID */ + camp_id: components['parameters']['CampId'] + } + cookie?: never + } + requestBody?: never responses: { - /** @description No Content */ - NoContent: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - BadRequest: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - message?: string; - }; - }; - }; - /** @description Forbidden */ - Forbidden: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - message?: string; - }; - }; - }; - /** @description Not Found */ - NotFound: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - message?: string; - }; - }; - }; - /** @description Conflict */ - Conflict: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - message?: string; - }; - }; - }; - /** @description Internal Server Error */ - InternalServerError: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - /** @example Internal server error */ - message?: string; - }; - }; - }; - }; + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Camp'] + } + } + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + putCamp: { parameters: { + query?: never + header?: { /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User": string; + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { /** @description 合宿ID */ - CampId: number; + camp_id: components['parameters']['CampId'] + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostCampRequest'] + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Camp'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + getEvents: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Event'][] + } + } + 500: components['responses']['InternalServerError'] + } + } + postEvent: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostEventRequest'] + } + } + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Event'] + } + } + 400: components['responses']['BadRequest'] + 500: components['responses']['InternalServerError'] + } + } + getEvent: { + parameters: { + query?: never + header?: never + path: { + /** @description イベントID */ + event_id: components['parameters']['EventId'] + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Event'] + } + } + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + putEvent: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { /** @description イベントID */ - EventId: number; + event_id: components['parameters']['EventId'] + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostEventRequest'] + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Event'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + registerEvent: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { + /** @description イベントID */ + event_id: components['parameters']['EventId'] + } + cookie?: never + } + requestBody?: never + responses: { + 204: components['responses']['NoContent'] + 404: components['responses']['NotFound'] + 409: components['responses']['Conflict'] + 500: components['responses']['InternalServerError'] + } + } + unregisterEvent: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { + /** @description イベントID */ + event_id: components['parameters']['EventId'] + } + cookie?: never + } + requestBody?: never + responses: { + 204: components['responses']['NoContent'] + 404: components['responses']['NotFound'] + 409: components['responses']['Conflict'] + 500: components['responses']['InternalServerError'] + } + } + getParticipants: { + parameters: { + query?: never + header?: never + path: { + /** @description イベントID */ + event_id: components['parameters']['EventId'] + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['User'][] + } + } + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + getMe: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['User'] + } + } + 500: components['responses']['InternalServerError'] + } + } + getQuestionGroups: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['QuestionGroup'][] + } + } + 500: components['responses']['InternalServerError'] + } + } + postQuestionGroup: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostQuestionGroupRequest'] + } + } + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['QuestionGroup'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 500: components['responses']['InternalServerError'] + } + } + getQuestions: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Question'][] + } + } + 500: components['responses']['InternalServerError'] + } + } + postQuestion: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostQuestionRequest'] + } + } + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Question'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 500: components['responses']['InternalServerError'] + } + } + getQuestion: { + parameters: { + query?: never + header?: never + path: { + /** @description 質問ID */ + question_id: components['parameters']['QuestionId'] + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Question'] + } + } + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + putQuestion: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { + /** @description 質問ID */ + question_id: components['parameters']['QuestionId'] + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostQuestionRequest'] + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Question'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + deleteQuestion: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { /** @description 質問ID */ - QuestionId: number; + question_id: components['parameters']['QuestionId'] + } + cookie?: never + } + requestBody?: never + responses: { + 204: components['responses']['NoContent'] + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + postOption: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostOptionRequest'] + } + } + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Option'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 500: components['responses']['InternalServerError'] + } + } + putOption: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { /** @description 選択肢ID */ - OptionId: number; - /** @description 回答ID */ - AnswerId: number; + option_id: components['parameters']['OptionId'] + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostOptionRequest'] + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Option'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + getMyAnswer: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { + /** @description 質問ID */ + question_id: components['parameters']['QuestionId'] + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Answer'] + } + } + 500: components['responses']['InternalServerError'] + } + } + putAnswer: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path: { + /** @description 質問ID */ + question_id: components['parameters']['QuestionId'] + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PutAnswerRequest'] + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Answer'] + } + } + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + getMyBudget: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Budget'] + } + } + 500: components['responses']['InternalServerError'] + } + } + getStaffs: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['User'][] + } + } + 500: components['responses']['InternalServerError'] + } + } + postStaff: { + parameters: { + query?: never + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PostStaffRequest'] + } + } + responses: { + 204: components['responses']['NoContent'] + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } + deleteStaff: { + parameters: { + query: { /** @description 合宿係のtraQ ID */ - StaffId: string; - }; - requestBodies: never; - headers: never; - pathItems: never; -} -export type $defs = Record; -export interface operations { - getCamps: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Camp"][]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - postCamp: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostCampRequest"]; - }; - }; - responses: { - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PostCampRequest"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 409: components["responses"]["Conflict"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getDefaultCamp: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Camp"]; - }; - }; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getCamp: { - parameters: { - query?: never; - header?: never; - path: { - /** @description 合宿ID */ - camp_id: components["parameters"]["CampId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Camp"]; - }; - }; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - putCamp: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description 合宿ID */ - camp_id: components["parameters"]["CampId"]; - }; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostCampRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Camp"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getEvents: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Event"][]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - postEvent: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostEventRequest"]; - }; - }; - responses: { - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Event"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getEvent: { - parameters: { - query?: never; - header?: never; - path: { - /** @description イベントID */ - event_id: components["parameters"]["EventId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Event"]; - }; - }; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - putEvent: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description イベントID */ - event_id: components["parameters"]["EventId"]; - }; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostEventRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Event"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - registerEvent: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description イベントID */ - event_id: components["parameters"]["EventId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - 204: components["responses"]["NoContent"]; - 404: components["responses"]["NotFound"]; - 409: components["responses"]["Conflict"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - unregisterEvent: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description イベントID */ - event_id: components["parameters"]["EventId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - 204: components["responses"]["NoContent"]; - 404: components["responses"]["NotFound"]; - 409: components["responses"]["Conflict"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getParticipants: { - parameters: { - query?: never; - header?: never; - path: { - /** @description イベントID */ - event_id: components["parameters"]["EventId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"][]; - }; - }; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getMe: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - getQuestionGroups: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["QuestionGroup"][]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - postQuestionGroup: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostQuestionGroupRequest"]; - }; - }; - responses: { - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["QuestionGroup"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getQuestions: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Question"][]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - postQuestion: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostQuestionRequest"]; - }; - }; - responses: { - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Question"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getQuestion: { - parameters: { - query?: never; - header?: never; - path: { - /** @description 質問ID */ - question_id: components["parameters"]["QuestionId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Question"]; - }; - }; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - putQuestion: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description 質問ID */ - question_id: components["parameters"]["QuestionId"]; - }; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostQuestionRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Question"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - deleteQuestion: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description 質問ID */ - question_id: components["parameters"]["QuestionId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - 204: components["responses"]["NoContent"]; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - postOption: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostOptionRequest"]; - }; - }; - responses: { - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Option"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - putOption: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description 選択肢ID */ - option_id: components["parameters"]["OptionId"]; - }; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostOptionRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Option"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getMyAnswer: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description 質問ID */ - question_id: components["parameters"]["QuestionId"]; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Answer"]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - putAnswer: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path: { - /** @description 質問ID */ - question_id: components["parameters"]["QuestionId"]; - }; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PutAnswerRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Answer"]; - }; - }; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - getMyBudget: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Budget"]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - getStaffs: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"][]; - }; - }; - 500: components["responses"]["InternalServerError"]; - }; - }; - postStaff: { - parameters: { - query?: never; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PostStaffRequest"]; - }; - }; - responses: { - 204: components["responses"]["NoContent"]; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; - deleteStaff: { - parameters: { - query: { - /** @description 合宿係のtraQ ID */ - staff_id: components["parameters"]["StaffId"]; - }; - header?: { - /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ - "X-Forwarded-User"?: components["parameters"]["X-Forwarded-User"]; - }; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - 204: components["responses"]["NoContent"]; - 400: components["responses"]["BadRequest"]; - 403: components["responses"]["Forbidden"]; - 404: components["responses"]["NotFound"]; - 500: components["responses"]["InternalServerError"]; - }; - }; + staff_id: components['parameters']['StaffId'] + } + header?: { + /** @description ログインしているユーザーのtraQ ID(NeoShowcaseが自動で付与) */ + 'X-Forwarded-User'?: components['parameters']['X-Forwarded-User'] + } + path?: never + cookie?: never + } + requestBody?: never + responses: { + 204: components['responses']['NoContent'] + 400: components['responses']['BadRequest'] + 403: components['responses']['Forbidden'] + 404: components['responses']['NotFound'] + 500: components['responses']['InternalServerError'] + } + } } diff --git a/frontend/src/lib/global.d.ts b/frontend/src/lib/global.d.ts deleted file mode 100644 index c4d5daa..0000000 --- a/frontend/src/lib/global.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare global { - type QuestionGroup = components["schemas"]["QuestionGroup"] - type Question = components["schemas"]["Question"] - type QuestionAnswer = omponents["schemas"]["Answer"] -} - -export {} diff --git a/openapi.yaml b/openapi.yaml index 113c940..03f228f 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17,44 +17,44 @@ paths: - Camps operationId: getCamps responses: - '200': + "200": description: OK content: application/json: schema: type: array items: - $ref: '#/components/schemas/Camp' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Camp" + "500": + $ref: "#/components/responses/InternalServerError" post: summary: 合宿を作成 tags: - Camps operationId: postCamp parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostCampRequest' + $ref: "#/components/schemas/PostCampRequest" responses: - '201': + "201": description: Created content: application/json: schema: - $ref: '#/components/schemas/PostCampRequest' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '409': - $ref: '#/components/responses/Conflict' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/PostCampRequest" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "409": + $ref: "#/components/responses/Conflict" + "500": + $ref: "#/components/responses/InternalServerError" /api/camps/default: get: summary: デフォルトの合宿を取得 @@ -62,16 +62,16 @@ paths: - Camps operationId: getDefaultCamp responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Camp' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Camp" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" /api/camps/{camp_id}: get: summary: 合宿の詳細を取得 @@ -79,47 +79,47 @@ paths: - Camps operationId: getCamp parameters: - - $ref: '#/components/parameters/CampId' + - $ref: "#/components/parameters/CampId" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Camp' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Camp" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" put: summary: 合宿を更新 tags: - Camps operationId: putCamp parameters: - - $ref: '#/components/parameters/CampId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/CampId" + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostCampRequest' + $ref: "#/components/schemas/PostCampRequest" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Camp' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Camp" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" /api/events: get: summary: イベントの一覧を取得 @@ -127,40 +127,40 @@ paths: - Events operationId: getEvents responses: - '200': + "200": description: OK content: application/json: schema: type: array items: - $ref: '#/components/schemas/Event' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Event" + "500": + $ref: "#/components/responses/InternalServerError" post: summary: イベントを作成 tags: - Events operationId: postEvent parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostEventRequest' + $ref: "#/components/schemas/PostEventRequest" responses: - '201': + "201": description: Created content: application/json: schema: - $ref: '#/components/schemas/Event' - '400': - $ref: '#/components/responses/BadRequest' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Event" + "400": + $ref: "#/components/responses/BadRequest" + "500": + $ref: "#/components/responses/InternalServerError" /api/events/{event_id}: get: summary: イベントの詳細を取得 @@ -168,47 +168,47 @@ paths: - Events operationId: getEvent parameters: - - $ref: '#/components/parameters/EventId' + - $ref: "#/components/parameters/EventId" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Event' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Event" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" put: summary: イベントを更新 tags: - Events operationId: putEvent parameters: - - $ref: '#/components/parameters/EventId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/EventId" + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostEventRequest' + $ref: "#/components/schemas/PostEventRequest" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Event' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Event" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" /api/events/{event_id}/register: post: summary: イベントに参加 @@ -216,34 +216,34 @@ paths: - Events operationId: registerEvent parameters: - - $ref: '#/components/parameters/EventId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/EventId" + - $ref: "#/components/parameters/X-Forwarded-User" responses: - '204': - $ref: '#/components/responses/NoContent' - '404': - $ref: '#/components/responses/NotFound' - '409': - $ref: '#/components/responses/Conflict' - '500': - $ref: '#/components/responses/InternalServerError' + "204": + $ref: "#/components/responses/NoContent" + "404": + $ref: "#/components/responses/NotFound" + "409": + $ref: "#/components/responses/Conflict" + "500": + $ref: "#/components/responses/InternalServerError" delete: summary: イベントへの参加をキャンセル tags: - Events operationId: unregisterEvent parameters: - - $ref: '#/components/parameters/EventId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/EventId" + - $ref: "#/components/parameters/X-Forwarded-User" responses: - '204': - $ref: '#/components/responses/NoContent' - '404': - $ref: '#/components/responses/NotFound' - '409': - $ref: '#/components/responses/Conflict' - '500': - $ref: '#/components/responses/InternalServerError' + "204": + $ref: "#/components/responses/NoContent" + "404": + $ref: "#/components/responses/NotFound" + "409": + $ref: "#/components/responses/Conflict" + "500": + $ref: "#/components/responses/InternalServerError" /api/events/{event_id}/participants: get: summary: イベントの参加者一覧を取得 @@ -251,20 +251,20 @@ paths: - Events operationId: getParticipants parameters: - - $ref: '#/components/parameters/EventId' + - $ref: "#/components/parameters/EventId" responses: - '200': + "200": description: OK content: application/json: schema: type: array items: - $ref: '#/components/schemas/User' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/User" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" /api/me: get: summary: 自分の情報を取得 @@ -272,16 +272,16 @@ paths: - Users operationId: getMe parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/User' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/User" + "500": + $ref: "#/components/responses/InternalServerError" /api/question_groups: get: summary: 質問グループの一覧を取得 @@ -289,42 +289,42 @@ paths: - Questions operationId: getQuestionGroups responses: - '200': + "200": description: OK content: application/json: schema: type: array items: - $ref: '#/components/schemas/QuestionGroup' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/QuestionGroup" + "500": + $ref: "#/components/responses/InternalServerError" post: summary: 質問グループを作成 tags: - Questions operationId: postQuestionGroup parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostQuestionGroupRequest' + $ref: "#/components/schemas/PostQuestionGroupRequest" responses: - '201': + "201": description: Created content: application/json: schema: - $ref: '#/components/schemas/QuestionGroup' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/QuestionGroup" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "500": + $ref: "#/components/responses/InternalServerError" /api/questions: get: summary: 質問の一覧を取得 @@ -332,42 +332,42 @@ paths: - Questions operationId: getQuestions responses: - '200': + "200": description: OK content: application/json: schema: type: array items: - $ref: '#/components/schemas/Question' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Question" + "500": + $ref: "#/components/responses/InternalServerError" post: summary: 質問を作成 tags: - Questions operationId: postQuestion parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostQuestionRequest' + $ref: "#/components/schemas/PostQuestionRequest" responses: - '201': + "201": description: Created content: application/json: schema: - $ref: '#/components/schemas/Question' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Question" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "500": + $ref: "#/components/responses/InternalServerError" /api/questions/{question_id}: get: summary: 質問の詳細を取得 @@ -375,66 +375,66 @@ paths: - Questions operationId: getQuestion parameters: - - $ref: '#/components/parameters/QuestionId' + - $ref: "#/components/parameters/QuestionId" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Question' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Question" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" put: summary: 質問を更新 tags: - Questions operationId: putQuestion parameters: - - $ref: '#/components/parameters/QuestionId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/QuestionId" + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostQuestionRequest' + $ref: "#/components/schemas/PostQuestionRequest" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Question' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Question" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" delete: summary: 質問を削除 tags: - Questions operationId: deleteQuestion parameters: - - $ref: '#/components/parameters/QuestionId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/QuestionId" + - $ref: "#/components/parameters/X-Forwarded-User" responses: - '204': - $ref: '#/components/responses/NoContent' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + "204": + $ref: "#/components/responses/NoContent" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" /api/options: post: summary: 選択肢を作成 @@ -442,26 +442,26 @@ paths: - Questions operationId: postOption parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostOptionRequest' + $ref: "#/components/schemas/PostOptionRequest" responses: - '201': + "201": description: Created content: application/json: schema: - $ref: '#/components/schemas/Option' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Option" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "500": + $ref: "#/components/responses/InternalServerError" /api/options/{option_id}: put: summary: 選択肢を更新 @@ -469,29 +469,29 @@ paths: - Questions operationId: putOption parameters: - - $ref: '#/components/parameters/OptionId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/OptionId" + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostOptionRequest' + $ref: "#/components/schemas/PostOptionRequest" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Option' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Option" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" /api/me/answers/{question_id}: get: summary: 自分の回答を取得 @@ -499,46 +499,46 @@ paths: - Questions operationId: getMyAnswer parameters: - - $ref: '#/components/parameters/QuestionId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/QuestionId" + - $ref: "#/components/parameters/X-Forwarded-User" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Answer' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Answer" + "500": + $ref: "#/components/responses/InternalServerError" put: summary: 回答を更新 tags: - Questions operationId: putAnswer parameters: - - $ref: '#/components/parameters/QuestionId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/QuestionId" + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PutAnswerRequest' + $ref: "#/components/schemas/PutAnswerRequest" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Answer' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Answer" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" /api/me/budgets: get: summary: 自分の予算を取得 @@ -546,16 +546,16 @@ paths: - Budgets operationId: getMyBudget parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Budget' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/Budget" + "500": + $ref: "#/components/responses/InternalServerError" /api/staffs: get: summary: 合宿係の一覧を取得 @@ -563,59 +563,59 @@ paths: - Staffs operationId: getStaffs responses: - '200': + "200": description: OK content: application/json: schema: type: array items: - $ref: '#/components/schemas/User' - '500': - $ref: '#/components/responses/InternalServerError' + $ref: "#/components/schemas/User" + "500": + $ref: "#/components/responses/InternalServerError" post: summary: 合宿係を追加 tags: - Staffs operationId: postStaff parameters: - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/X-Forwarded-User" requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PostStaffRequest' + $ref: "#/components/schemas/PostStaffRequest" responses: - '204': - $ref: '#/components/responses/NoContent' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + "204": + $ref: "#/components/responses/NoContent" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" delete: summary: 合宿係を削除 tags: - Staffs operationId: deleteStaff parameters: - - $ref: '#/components/parameters/StaffId' - - $ref: '#/components/parameters/X-Forwarded-User' + - $ref: "#/components/parameters/StaffId" + - $ref: "#/components/parameters/X-Forwarded-User" responses: - '204': - $ref: '#/components/responses/NoContent' - '400': - $ref: '#/components/responses/BadRequest' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + "204": + $ref: "#/components/responses/NoContent" + "400": + $ref: "#/components/responses/BadRequest" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" components: parameters: @@ -775,6 +775,8 @@ components: type: string by_staff: type: boolean + display_color: + type: string required: - id - name @@ -785,6 +787,7 @@ components: - camp_id - organizer_traq_id - by_staff + - display_color PostEventRequest: type: object properties: @@ -804,6 +807,8 @@ components: type: integer create_as_staff: type: boolean + display_color: + type: string required: - name - description @@ -812,6 +817,7 @@ components: - time_end - camp_id - create_as_staff + - display_color User: type: object properties: @@ -838,7 +844,7 @@ components: questions: type: array items: - $ref: '#/components/schemas/Question' + $ref: "#/components/schemas/Question" camp_id: type: integer required: @@ -892,7 +898,7 @@ components: options: type: array items: - $ref: '#/components/schemas/Option' + $ref: "#/components/schemas/Option" nullable: true required: - id