Skip to content
XPA edited this page Aug 31, 2023 · 23 revisions

/health

typescript

{"message":"ok"}

/api/v1/register

登録

body

{
  "Email": "<email>",
  "Name": "<string>",
  "Password": "<string>"
}

response

{
  "message": "<string>",
  "status": "error"|"success"
}

/api/v1/login

ログイン

body

{
  "Email": "<email>",
  "Password": "<string>"
}

response

{
  "message": "<string>",
  "status": "error"|"success"
}

/api/v1/logout

ログアウト

response

{
  "message": "<string>",
  "status": "success"
}

/api/v1/get_teams

所属チーム一覧

response

{
  "message": "",
  "status": "success",
  "teams":{
    id: number;
    name: string;
    owner: number;
  }[]
}

/api/v1/create_teams

チーム作成

body

{
  "Name": string;
  "Emails": string[];
}

response

{//MissingUserErrorResponse
  "message": string;
  "status": "error";
  "data": string[];//存在しないメールアドレスの配列
} | 
{//CreateTeamsResponse
  "message": string;
  "status": "success";
  "team_id": number;
}

/api/v1/get_books

自分の本一覧

response

{
  "message": string;
  "status": "success"|"error";
  "data": {
    id: number;
    title: string;
    state: "available"|"lending"|"unavailable";
    rating: number;//※float64
  }[]
}

/api/v1/add_book

本追加

body

{
  "ISBN": string;
}

response

{
  "message": string;
  "status": "success"|"error";
}

/api/v1/get_team_books

チーム内の本一覧取得

param

team_id: number

response

{
  "message": string;
  "status": "success"|"error";
  "data": {
    "id": number;
    "title": string;
    "state": "available"|"lending"|"unavailable";
    "owner_name": string;
  }[]
}

/api/v1/get_book_detail

本の詳細取得

param

user_book_id: number;

response

{
  "message": string;
  "status": "success"|"error";
  "data": {
    "owner_name": string;
    "borrower_name": string;
    "title": string;
    "state": "available"|"lending"|"unavailable";
    "isbn": string;
    "rating": numnber;//※float64
  }
}

/api/v1/update_user_book_state

本の貸出可否の更新

body

{
  "user_book_id": number;
  "State": "available"|"unavailable";
}

response

{
  "message": string;
  "status": "success"|"error";
}

/api/v1/request_rental

貸出リクエスト作成

body

{
  "user_book_id": number;
  "team_id": number;
}

response

{
  "message": string;
  "status": string;
}

/api/v1/try_auth

認証されているかの確認

response

{
  "is_logged_in": bool
}

/api/v1/process_request

貸出処理・貸出拒否 accept=false -> 拒否 accept=true -> 貸出

body

{
  "user_book_id": number;
  "Accept": bool;
}

response

{
  "message": string
  "status": string
}

/api/v1/process_return

返却処理

body

{
  "user_book_id": number;
}

response

{
  "message": string
  "status": string
}

/api/v1/get_requests

response

{
  "message": string
  "status": string
  "data": {
    "id": number;
    "title": string;
    "borrower_name": string;
    "status": string;
  }[]
}

/api/v1/set_rate

body

{
  "book_id": number;
  "Rate": number;
  "Comment": string;
}

response

{
  "message": string
  "status": string
}

/api/v1/send_demand_letter[廃止]

body

{
  "lendId": number;
}

response

{
  "message": string
  "status": string
}