[電子レシートAPI] 店舗の追加、検索、取得、更新

ここではAPIでの店舗管理方法を紹介します。店舗は組織の下に複数作成することができます。

# リクエスト/レスポンス
それでは店舗に対する各種APIを紹介します。店舗に関するAPIは全て指定の権限を持っている必要がありますので、まずはトークンを取得し、ヘッダーに`Bear Token`を指定してください。

- [APIトークンの取得方法](https://qiita.com/syantien/items/5a62acabce99aa81edab)

それでは作成→検索→取得→更新の順で紹介します。

## 作成

まずは端末データを作成します。

### エンドポイント
`https://api.receiptroller.com/{organizationId}/store/create`

### メソッド
`POST`

### リクエスト項目
|フィールド名|必須|指定箇所|備考|
|:--|:--|:--|:--|
|organizationId|必須|Route|組織Id|
|storeCode|必須|Body|任意の店舗コード|
|storeName|必須|Body|店舗名|

### サンプルリクエスト

```
curl -X 'POST' \
  'https://api.receiptroller.com/{organizationId}/store/create' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{
  "storeCode": "S9399",
  "storeName": "店舗A"
}'
```

### サンプルレスポンス

```json
{
  "id": "`{storeId}",
  "organizationId": "{organizationId}",
  "storeCode": "S9399",
  "storeName": "店舗A"
}
```

## 一覧

作成された店舗があるかどうか確認してみます。

### エンドポイント
`https://api.receiptroller.com/{organizationId}/stores`

### メソッド
`POST`

### リクエスト項目
|フィールド名|必須|指定箇所|備考|
|:--|:--|:--|:--|
|organizationId|必須|Route|組織Id|
|keyword||Body|storelCodeでの検索|
|currentPage|必須|Body|現在のページを指定|
|itemsPerPage|必須|Body|1ページに何項目表示するか指定|

### サンプルリクエスト

```
curl -X 'POST' \
  'https://api.receiptroller.com/{organizationId}/terminals' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {token}' \
  -H 'Content-Type: application/json' \
  -d '{
  "currentPage": 1,
  "itemsPerPage": 10
}'
```

### サンプルレスポンス

```json
{
  "stores": {
    "items": [
      {
        "id": "{id}",
        "organizationId": "{organizationId}",
        "storeCode": "123ABC",
        "storeName": "北表参道店ショップ"
      },
      {
        "id": "{id}",
        "organizationId": "{organizationId}",
        "storeCode": "S9399",
        "storeName": "店舗A"
      }
    ],
    "currentPage": 1,
    "itemsPerPage": 10,
    "totalItems": 2,
    "totalPages": 1,
    "keyword": null,
    "sort": null
  }
}
```

## 詳細

現段階では利用用途は少ないのですが、将来店舗に対する情報が増えてきたときは指定した店舗を取得する際に利用するAPIです。

### エンドポイント
`https://api.receiptroller.com/{organizationId}/store/{id}`

### メソッド
`GET`

### リクエスト項目
|フィールド名|必須|指定箇所|備考|
|:--|:--|:--|:--|
|organizationId|必須|Route|組織Id|
|id||Route|d店舗Id|

### サンプルリクエスト

```
curl -X 'GET' \
  'https://api.receiptroller.com/{organizationId}/store/{id}' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {token}'
```

### サンプルレスポンス

```json
{
  "id": "{id}",
  "organizationId": "{organizationId}",
  "storeCode": "S9399",
  "storeName": "店舗A"
}
```

## 更新

店舗データを登録した後に情報を更新する必要があるときはこのAPIにて行います。

### エンドポイント
`https://api.receiptroller.com/{organizationId}/store/update`

### メソッド
`POST`

### リクエスト項目
|フィールド名|必須|指定箇所|備考|
|:--|:--|:--|:--|
|organizationId|必須|Route|組織Id|
|id|必須|Body|端末d|
|storeId|必須|Body|店舗Id|
|storeCode|必須|Body|任意の店舗コード|
|storeName|必須|Body|店舗名|

### サンプルリクエスト

```
curl -X 'POST' \
  'https://api.receiptroller.com/{organizationId}/store/update' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {token}' \
  -H 'Content-Type: application/json' \
  -d '{
  "id": "{id}",
  "storeCode": "S9399",
  "storeName": "店舗A新ネーム"
}'
```

### サンプルレスポンス

```json
{
  "id": "{id}",
  "organizationId": "{organizationId}",
  "storeCode": "S9399",
  "storeName": "店舗A新ネーム"
}
```

# 最後に

質問やバグを発見した場合はこちらからIssueをご登録お願いいたします。

https://github.com/Receipt-Roller/RECEIPTROLLER-Dev./issues