---
# System prepended metadata

title: Give++ API 文件

---

# Give++ API 文件

## URL Path Documentation

### Root Path: `/api/v1`

 所有 api 區分成五個類別：
* /v1/users 
* /v1/products
* /v1/orders
* /v1/carts
* /v1/manages

### [使用者 User](#User)

| 說明                 | Method | Path               |
| -------------------- | ------ | ------------------ |
| 註冊使用者           | POST   | /users/register    |
| 登入使用者           | POST   | /users/login       |
| 登出使用者           | GET   | /users/logout       |
| 取得自己的使用者資料 | GET    | /users/me          |
| 修改自己的使用者資料 | PATCH  | /users/me          |
| 修改自己的密碼       | PATCH  | /users/password    |
| 修改自己的公告       | PATCH  | /users/announcment |
| 取得單一使用者資料   | GET    | /users/:id         |
| 修改單一使用者資料   | PATCH  | /users/:id         |
| 取得所有使用者資料   | GET    | /users             |
| 申請成為賣家         | POST   | /users/apply       |
| 使用者向平台寄送站內信 | POST   | /users/mail      |


### [產品分類 Product Category](#Category)

| 說明         | Method | Path                   |
| ------------ | ------ | ---------------------- |
| 取得所有分類 | GET    | /products/categories   |

### [產品 Product](#Product)

| 說明                 | Method | Path                         | Params                                                                  |
| -------------------- | ------ | ---------------------------- | ----------------------------------------------------------------------- |
| 取得所有商品         | GET    | /products                    | all（全部）<br>passed（通過）<br>failed（未通過）<br>checking（審核中） |
| 取得該分類商品       | GET    | /products/categories/:id       | all（全部）<br>passed（通過）<br>failed（未通過）<br>checking（審核中） |
| 取得該賣家商品       | GET    | /products/vendor/:id         | all（全部）<br>passed（通過）<br>failed（未通過）<br>checking（審核中） |
| 取得搜尋商品結果     | GET    | /products/search/`<keyword>` |                                                                         |
| 取得單ㄧ商品詳細資料 | GET    | /products/:id                |                                                                         |
| 新增商品             | POST   | /products/new                |                                                                         |
| 編輯商品             | PATCH  | /products/:id                |                                                                         |
| 刪除商品             | DELETE | /products/:id                |                                                                         |
| 取得待審核商品             | GET | /products/unaudited                |                                                                         |

### [購物車 Cart](#Cart)

| 說明                 | Method | Path                 |
| -------------------- | ------ | -------------------- |
| 取得購物車商品       | GET    | /carts/              |
| 新增商品至購物車     | POST   | /carts/cart_item/new |
| 編輯購物車商品       | PATCH  | /carts/cart-item/:id |
| 刪除購物車商品       | DELETE | /carts/cart-item/:id |
| 刪除購物車同賣家商品 | DELETE | /carts/seller/:id    |

### [訂單 Order](#Order)

| 說明                 | Method | Path                       |
| -------------------- | ------ | -------------------------- |
| 取得全部訂單列表     | GET    | /orders                    |
| 取得自己買的訂單列表 | GET    | /orders/buy                |
| 取得自己賣的訂單列表 | GET    | /orders/sell               |
| 取得單一訂單明細     | GET    | /orders/:id          |
| 成立訂單            | POST   | /orders/new          |
| 訂單完成             | PATCH  | /orders/:id/complete |
| 訂單付款             | PATCH  | /orders/:id/pay      |
| 訂單出貨             | PATCH  | /orders/:id/send     |
| 訂單取消             | PATCH  | /orders/:id/cancel   |
| 刪除訂單             | DELETE | /orders/:id          |


### [條款 Rule](#Rule)

| 說明             | Method | Path               |
| ---------------- | ------ | ------------------ |
| 取得所有條款資料 | GET    | /manages/rules     |
| 取得單一條款資料 | GET    | /manages/rules/:id |
| 新增條款         | POST   | /manages/rules/new |
| 編輯條款         | PATCH  | /manages/rules/:id |
| 刪除條款         | DELETE | /manages/rules/:id |

### [常見問題 FAQ](#FAQ)

| 說明             | Method | Path              |
| ---------------- | ------ | ----------------- |
| 取得所有常見問題 | GET    | /manages/faqs     |
| 取得單一常見問題 | GET    | /manages/faqs/:id |
| 新增常見問題     | POST   | /manages/faqs/new |
| 編輯常見問題     | PATCH  | /manages/faqs/:id |
| 刪除常見問題     | DELETE | /manages/faqs/:id |

### [常見問題分類 FAQ Category](#FAQ-Category)

| 說明             | Method | Path                        |
| ---------------- | ------ | --------------------------- |
| 取得所有問題分類 | GET    | /manages/faq-categories/new |
| 新增問題分類     | POST   | /manages/faq-categories/new |
| 編輯問題分類     | PATCH  | /manages/faq-categories/:id |
| 刪除問題分類     | DELETE | /manages/faq-categories/:id |

### [管理相關 manage](#manage)
| 說明         | Method | Path                      |
| ------------ | ------ | ------------------------- |
| 編輯商品審核狀態 | POST   | /manages/audit |
| 取得所有用戶寄來的站內信 | GET   | /manages/mails |
| 取得單一用戶寄來的站內信 | GET   | /manages/mail/:id |



### P2 [使用者的平台窗口留言板 Board](#Board)

*底下僅供參考

| 說明                     | Method | Path                        |
| ------------------------ | ------ | --------------------------- |
| 取得使用者留言板所有留言 | GET    | /users/:id/board              |
| 新增留言板留言           | POST   | /users/:id/board/comment     |
| 編輯留言板留言           | PATCH  | /users/:id/board/comment/:id |
| 刪除留言板留言           | DELETE | /users/:id/board/comment/:id |



## API Details & Examples

### User

#### 註冊使用者

Request Example

```json 
{
    "username": "Nicolas",
    "password": "1234",
    "email": "123@gmail.com"
}
```

Response Example
```json
{   
    "ok": 1,
}
```

#### 登入使用者

Request Example

```json
{
    "username": "Nicolas",
    "password": "1234",
}
```

Response Example
```json
{   
    "ok": 1,
}
```

#### 登出使用者

Response Example
```json
{   
    "ok": 1,
}
```

#### 取得自己的使用者資料

Response Example
```json
{
    "ok": 1,
    "data": {
        "userId": 1,
        "username": "Nicolas Wood",
        "nickname": "Nick",
        "email": "test2@gmail.com", 
        "address": "Mars",
        "role": "user",
        "isVendor": "yes",
        "announcment": "welcome to my store",
        "account": "32189423"
        "avatarUrl": "https://i.imgur.com/32145",
        "bannerUrl": "https://i.imgur.com/34214",
        "account": "28321235406",
        "birthday": "2002/02/29"
        "idCardNo": "A128376979",
        "status": "normal"
    }
}
```

#### 修改自己的使用者資料

Request Example
```json
{
    "nickname": "123",
    "email": "123@gmail.com",
    "address": "456",
    "account": "1234-5678-9123",
    "socialmedia_id": "3213123",
    "birthday": "2020-12-13",
    "id_card_no": "A123456789",
    "avatar_url": "https//",
    "banner_url": "https//"
}
```

Response  Example
```json
{
    "ok": 1,
    "data": "success"
}
```
#### 修改自己的密碼
Request Example
```json=
{
	"oldPassword": "123",
	"newPassword": "test",
	"confirmPassword": "test"
}

```
Response  Example
```json
{
    "ok": 1,
    "data": "success"
}
```

#### 修改自己的賣家公告
```json=
{
	"announcement": "公告123"
}

```
Response  Example
```json
{
    "ok": 1,
    "data": "success"
}
```


#### 取得使用者資料

Response Example
```json
{
    "ok": 1,
    "data": {
        "userId": 1,
        "username": "Nicolas Wood",
        "nickname": "Nick",
        "email": "test2@gmail.com", 
        "address": "Mars",
        "role": "user",
        "isVendor": "yes",
        "announcment": "welcome to my store",
        "account": "32189423"
        "avatarUrl": "https://i.imgur.com/32145",
        "bannerUrl": "https://i.imgur.com/34214",
        "account": "28321235406",
        "birthday": "2002/02/29"
        "idCardNo": "A128376979",
        "status": "normal"
    }
}
```

#### 修改使用者資料

Request Example
```json
{
    "nickname": "testupdate",
    "email": "test@mail.com",
    "address": "road",
    "account": "1234-5678-9123",
    "socialmedia_id": "3213123",
    "birthday": "2020-01-09",
		"id_card_no": "A123456789",
    "avatar_url": "https//",
    "banner_url": "https//"
}
```

Response  Example
```json
{
    "ok": 1,
    "data": "success"
}
```

#### 取得所有使用者資料

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "userId": 1,
            "username": "Nicolas Wood",
            "nickname": "Nick",
            "email": "test2@gmail.com", 
            "address": "Mars",
            "role": "user",
            "isVendor": "yes",
            "announcment": "welcome to my store",
            "account": "32189423"
            "avatarUrl": "https://i.imgur.com/32145",
            "bannerUrl": "https://i.imgur.com/34214",
            "account": "28321235406",
            "birthday": "2002/02/29"
            "idCardNo": "A128376979",
            "status": "normal"
        },
        {
            "userId": 2,
            "username": "Nicolas Wood",
            "nickname": "Nick",
            "email": "test2@gmail.com", 
            "address": "Mars",
            "role": "user",
            "isVendor": "yes",
            "announcment": "welcome to my store",
            "account": "32189423"
            "avatarUrl": "https://i.imgur.com/32145",
            "bannerUrl": "https://i.imgur.com/34214",
            "account": "28321235406",
            "birthday": "2002/02/29"
            "idCardNo": "A128376979",
            "status": "normal"
        },
    ]
}
```

#### 使用者向平台寄送站內信
Request Example
```json
{
	"name": "Tom",
	"email": "123@gmail.com",
	"phone": "0912345678",
	"content": "留言"
}
```

Response  Example
```json
{
    "ok": 1,
    "data": "success"
}
```

### Category

#### 取得所有分類

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 1,
            "name": "棒棒糖",
            "deletedAt": null,
            "createdAt": "2020-12-01T02:24:30.000Z",
            "updatedAt": "2020-12-01T02:24:30.000Z"
        },
        {
            "id": 2,
            "name": "棉花糖",
            "deletedAt": null,
            "createdAt": "2020-12-01T02:24:30.000Z",
            "updatedAt": "2020-12-01T02:24:30.000Z"
        },
        {
            "id": 3,
            "name": "麥芽糖",
            "deletedAt": null,
            "createdAt": "2020-12-01T02:24:30.000Z",
            "updatedAt": "2020-12-01T02:24:30.000Z"
        }
    ]
}
```


### Product


#### 取得所有商品

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 2,
            "name": "棒棒糖-已審核通過",
            "picture_url": "https://i.imgur.com/05CXT8U.jpg",
            "info": "棒棒棒",
            "price": 20000,
            "quantity": 1,
            "delivery": 1,
            "delivery_location": "台北",
            "delivery_time": "2020-12-01T02:24:30.000Z",
            "payment_method": 0,
            "remark": null,
            "status": 1,
            "deletedAt": null,
            "createdAt": "2020-12-01T02:24:30.000Z",
            "updatedAt": "2020-12-01T02:24:30.000Z",
            "ProductCategoryId": 1,
            "UserId": 1,
            "Product_category": {
                "id": 1,
                "name": "棒棒糖",
                "deletedAt": null,
                "createdAt": "2020-12-01T02:24:30.000Z",
                "updatedAt": "2020-12-01T02:24:30.000Z"
            },
            "User": {
                "id": 1,
                "username": "John",
                "password": "Doe",
                "nickname": "Johnny",
                "email": null,
                "address": null,
                "is_admin": false,
                "is_vendor": false,
                "announcement": null,
                "account": null,
                "socialmedia_id": null,
                "birthday": null,
                "id_card_no": null,
                "avatar_url": null,
                "banner_url": null,
                "status": 0,
                "deletedAt": null,
                "createdAt": "2020-12-01T02:24:30.000Z",
                "updatedAt": "2020-12-01T02:24:30.000Z"
            }
        },
        {
            "id": 5,
            "name": "棉花糖-已審核通過",
            "picture_url": "https://i.imgur.com/05CXT8U.jpg",
            "info": "棉棉棉",
            "price": 10000,
            "quantity": 1,
            "delivery": 1,
            "delivery_location": "台北",
            "delivery_time": "2020-12-01T02:24:30.000Z",
            "payment_method": 0,
            "remark": null,
            "status": 1,
            "deletedAt": null,
            "createdAt": "2020-12-01T02:24:30.000Z",
            "updatedAt": "2020-12-01T02:24:30.000Z",
            "ProductCategoryId": 2,
            "UserId": 1,
            "Product_category": {
                "id": 2,
                "name": "棉花糖",
                "deletedAt": null,
                "createdAt": "2020-12-01T02:24:30.000Z",
                "updatedAt": "2020-12-01T02:24:30.000Z"
            },
            "User": {
                "id": 1,
                "username": "John",
                "password": "Doe",
                "nickname": "Johnny",
                "email": null,
                "address": null,
                "is_admin": false,
                "is_vendor": false,
                "announcement": null,
                "account": null,
                "socialmedia_id": null,
                "birthday": null,
                "id_card_no": null,
                "avatar_url": null,
                "banner_url": null,
                "status": 0,
                "deletedAt": null,
                "createdAt": "2020-12-01T02:24:30.000Z",
                "updatedAt": "2020-12-01T02:24:30.000Z"
            }
        },
```


#### 取得該分類商品

Response Example
```json
{
    "ok": 1,
    "data": [
        {
          "id": 1 
          "name": "一件長袖上衣"
          "categoryId": 4 
          "pictureUrl": "https://i.imgur.com"
          "info": "讚讚" 
          "price": 4
          "quantity": 1 
          "delivery": 0 
          "status": 0 
          "UserId": 4 
        },
        {
          "id": 1 
          "name": "一件長袖上衣"
          "categoryId": 4 
          "pictureUrl": "https://i.imgur.com"
          "info": "讚讚" 
          "price": 4
          "quantity": 1 
          "delivery": 0 
          "status": 0 
          "UserId": 4 
        },
    ]
}
```

#### 取得賣家商品

Response Example
```json
{
    "ok": 1,
    "data": [
        {
          "id": 1 
          "name": "一件長袖上衣"
          "category": "生活" 
          "pictureUrl": "https://i.imgur.com"
          "info": "讚讚" 
          "price": 4
          "quantity": 1 
          "delivery": "面交" 
          "status": "checked"
          "UserId": 4 
        },
        {
          "id": 1 
          "name": "一件長袖上衣"
          "category": "生活" 
          "pictureUrl": "https://i.imgur.com"
          "info": "讚讚" 
          "price": 4
          "quantity": 1 
          "delivery": "面交" 
          "status": "checked"
          "UserId": 4 
        },
    ]
}
```

#### 搜尋已通過商品

Request Example
```json
{
    "keyword": "短",
}
```

Response Example
```json
{
    "ok": 1,
    "data": [
        {
          "id": 1 
          "name": "一件長袖上衣"
          "category": "生活" 
          "pictureUrl": "https://i.imgur.com"
          "info": "讚讚" 
          "price": 4
          "quantity": 1 
          "delivery": "面交" 
          "status": "checked"
          "UserId": 4 
        },
        {
          "id": 1 
          "name": "一件長袖上衣"
          "category": "生活" 
          "pictureUrl": "https://i.imgur.com"
          "info": "讚讚" 
          "price": 4
          "quantity": 1 
          "delivery": "面交" 
          "status": "checked"
          "UserId": 4 
        },
    ]
}
```

#### 取得單ㄧ商品詳細資料

Response Example
```json
{
    "ok": 1,
    "data": {
          "id": 1 
          "name": "一件長袖上衣"
          "category": "生活" 
          "pictureUrl": "https://i.imgur.com"
          "info": "讚讚" 
          "price": 4
          "quantity": 1 
          "delivery": "面交" 
          "status": "checked"
          "UserId": 4 
    }
}

```

#### 新增商品

FORM Example
```json
{
      "name": "一件長袖上衣"
      "category": "生活" 
      "pictureUrl": "https://i.imgur.com"
      "info": "讚讚" 
      "price": 4
      "quantity": 1 
      "delivery": "面交" 
      "UserId": 4 
}
```

Response Example
```json
{
    "ok": 1,
    "productId": "2",
}
```

#### 編輯商品

Request Example
```json
{
      "id": 1, 
      "name": "一件長袖上衣",
      "category": "生活", 
      "pictureUrl": "https://i.imgur.com",
      "info": "讚讚", 
      "price": 4,
      "quantity": 1, 
      "delivery": "面交", 
      "status": "checked",
      "UserId": 4 
}
```

Response Example
```json
{
    "ok": 1,
    "data": {
        "productId": 1,
        "status": "success"
    }
}
```

#### 刪除商品

Response Example
```json
{
    "ok": 1,
    "productId": 1,
}
```


### Cart

#### 取得購物車商品

Response Example
```json
{
    "ok": 1,
    "data": {
        "seller2": [
            {
                "cartItemId": 3,
                "sellerId": 2,
                "productName": "測試商品3",
                "productId": 3,
                "pictureUrl": "https://i.imgur.com/05CXT8U.jpg",
                "price": 5000,
                "quantity": 1
            }
        ],
        "seller3": [
            {
                "cartItemId": 1,
                "sellerId": 3,
                "productName": "測試商品1",
                "productId": 1,
                "pictureUrl": "https://i.imgur.com/05CXT8U.jpg",
                "price": 20000,
                "quantity": 1
            },
            {
                "cartItemId": 2,
                "sellerId": 3,
                "productName": "測試商品2",
                "productId": 2,
                "pictureUrl": "https://i.imgur.com/05CXT8U.jpg",
                "price": 10000,
                "quantity": 1
            }
        ]
    }
}
```

#### 新增購物車商品

Request Body

```jsx
productId
quantity
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 編輯購物車商品

Request Body
```jsx
quantity 
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 刪除購物車商品

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 刪除購物車同賣家商品

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

### Order

#### 取得全部訂單列表

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 1,
            "orderNumber": "AC131247",
            "shipping": "面交",
            "content": "淡水河旁面交",
            "createdAt": "2020-11-15-14:30",
            "status": {
                "isPaid": "false",
                "isSent": "false",
                "isCompleted": "false",
                "isRefunded": "false",       
            }
        },
        {
            "id": 2,
            "orderNumber": "AC1312534",
            "content": "101旁面交",
            "createdAt": "2020-11-15-14:30",
            "status": {
                "isPaid": "false",
                "isSent": "false",
                "isCompleted": "false",
                "isRefunded": "false",      
            }
        },
    ]
}
```

#### 取得自己買的訂單列表

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 1,
            "orderNumber": "AC131247",
            "shipping": "面交",
            "content": "淡水河旁面交",
            "createdAt": "2020-11-15-14:30",
            "status": {
                "isPaid": "false",
                "isSeent": "false",
                "isCompleted": "false",
                "isRefunded": "false",       
            }
        },
        {
            "id": 2,
            "orderNumber": "AC1312534",
            "content": "101旁面交",
            "createdAt": "2020-11-15-14:30",
            "status": {
                "isPaid": "false",
                "isSent": "false",
                "isCompleted": "false",
                "isRefunded": "false",      
            }
        },
    ]
}
```

#### 取得自己賣的訂單列表

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 1,
            "orderNumber": "AC131247",
            "shipping": "面交",
            "content": "淡水河旁面交",
            "createdAt": "2020-11-15-14:30",
            "status": {
                "isPaid": "false",
                "isSent": "false",
                "isCompleted": "false",
                "isRefunded": "false",       
            }
        },
        {
            "id": 2,
            "orderNumber": "AC1312534",
            "content": "101旁面交",
            "createdAt": "2020-11-15-14:30",
            "status": {
                "isPaid": "false",
                "isSent": "false",
                "isCompleted": "false",
                "isRefunded": "false",      
            }
        },
    ]
}
```

#### 取得單一訂單明細
Response Example

```json
{
    "ok": 1,
    "data": {
        "id": 2,
        "orderNumber": "AC1312534",
        "totalQuantity": 1,
        "totalAmount": 600,
        "shipping": "面交",
        "content": "101旁面交",
        "createdAt": "2020-11-15-14:30" 
        "seller": {
            "id": 3,
            "name": "Nicolas",
            "email": "lidemy@lidemy.com",
            "phone": "0928476617",
            "address": "台北101",
        }
        "client": {
            "id": 4,
            "name": "Ruofan",
            "email": "lidemy@lidemy.com",
            "phone": "0928476617",
            "address": "台北101",
        }      
        "status": {
            "isPaid": "false",
            "isSent": "false",
            "isCompleted": "false",
            "isRefunded": "false"      
        }
    }
}
```


#### 成立訂單

- 新增一張訂單 orders
- 有訂單之後，把購物車商品新增成這張訂單的訂單商品 order_items
- 同時要把要下單的購物車商品從購物車裡刪掉 cart_items

Request Example
```json
[
	{
	"product_quantity":10,
	"ProductId":3,
	"UserId":3
},
{
	"product_quantity":1,
	"ProductId":4,
	"UserId":3
},
{
	"product_quantity":2,
	"ProductId":5,
	"UserId":3
}
]
```

Response Example
```json
{
    "ok": 1,
    "orderNumber": "202011201234",
}
```

#### 訂單完成

買家點選「完成付款」，要驗證使用者是否和該訂單的 client_id 一樣

Response Example
```json
{
    "ok": 1,
    "data": {
        "isCompleted": "1",
        "updatedAt": "2020-11-15-14:30"
    }
}
```
#### 訂單付款

買家點選「訂單付款」，要驗證使用者是否和該訂單的 client_id 一樣

Response Example
```json
{
    "ok": 1,
    "data": {
        "isPaid": "1",
        "updatedAt": "2020-11-15-14:30"
    }
}
```

#### 訂單出貨

賣家點選「訂單付款」，要驗證使用者是否和該訂單的 seller_id 一樣

Response Example
```json
{
    "ok": 1,
    "data": {
        "isSent": "1",
        "updatedAt": "2020-11-15-14:30"
    }
}
```

#### 訂單取消

賣家點選「訂單取消」，要驗證使用者是否和該訂單的 seller_id 或 client_id 一樣

Response Example
```json
{
    "ok": 1,
    "data": {
        "isCanceled": "1",
        "updatedAt": "2020-11-15-14:30"
    }
}
```

#### 刪除訂單

Response Example

```json
{
    "ok": 1,
    "updatedAt": "2020-11-15-14:30"
}
```

### Rule

#### 取得所有條款資料

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 1,
            "rule": "隱私權條款",
            "content": "測試測試測試測試"
        },
        {
            "id": 2,
            "rule": "免責聲明",
            "content": "測試測試測試測試"
        },
    ]
}
```

#### 取得單一條款資料

Response Example
```json
{
    "ok": 1,
    "data": {
        "id": 1,
        "rule": "隱私權條款",
        "content": "測試測試測試測試"
    }
}
```

#### 新增條款

Request Body
```jsx
rule
content
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 編輯條款

Request Body
```jsx
rule
content
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 刪除條款

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

### FAQ

#### 取得所有常見問題

Response Example
```json
{
    "ok": 1,
    "data": {
        "faqId": 1,
        "question": "可以亂賣東西嗎？",
        "faqCategory": "常見問題",
        "answer": "不行哦，不要欺負我 QQ"
    }
}
```

#### 新增常見問題

Request Body
```jsx
question
answer
faqCategoryId
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 編輯常見問題

Request Body
```jsx
question
answer
faqCategoryId
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 刪除常見問題

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

### FAQ-Category

#### 新增問題分類

Request Body
```jsx
name
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 編輯問題分類

Request Body
```jsx
name
```

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

#### 刪除問題分類

Response Example
```json
{
    "ok": 1,
    "message": "success"
}
```

### Board

#### 取得所有留言板

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "boardId": "1",
            "isArchived": false,
            "updatedAt": "2020-11-10-12:20",
            "comments": [
                {
                    "id": 1,
                    "cotent": "哈囉"
                },
                {
                    "id": 2,
                    "cotent": "早安安"
                }
            ]
        },
        {
            "boardId": "2",
            "isArchived": true,
            "updatedAt": "2020-11-10-12:20",
            "comments": [
                {
                    "id": 1,
                    "cotent": "哈囉"
                },
                {
                    "id": 2,
                    "cotent": "早安安"
                }
            ]
        }
    ]
}
```

#### 取得留言板所有訊息（打開使用者的留言板）

Response Example
```json
{
    "ok": 1,
    "data": {
        "userId": "1",
        "comments": [
            {
                "id": 1,
                "cotent": "哈囉"
            },
            {
                "id": 2,
                "cotent": "早安安"
            }
        ]
    }
}
```

#### 新增留言板留言

Request Example
```json
{
     "userId": "1",
     "commentContent": "測試測試"
}
```

Response Example
```json
{
    "ok": 1,
    "userId": "1",
}
```

#### 編輯留言板留言

Request Example
```json
{
     "userId": "1",
     "commentId": "4",
     "commentContent": "編輯測試測試"
}
```

Response Example
```json
{
    "ok": 1,
    "userId": "1",
}
```

#### 刪除留言板留言

Response Example
```json
{
    "ok": 1,
    "userId": "1",
}
```