# Like API

## 以目前使用者來對指定推文表示喜歡

<mark style="color:green;">`POST`</mark> `hostname/api/tweets/:id/like`

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | 推文ID        |

{% tabs %}
{% tab title="200: OK 成功喜歡推文，獲取被喜歡的推文紀錄" %}
```javascript
{
    "status": "success",                        
    "data": {
        "id": integer,
        "UserId": integer,
        "TweetId": integer,
        "createdAt": timestamp
    },
    "message": "成功喜歡推文"
}
```
{% endtab %}

{% tab title="401: Unauthorized 使用者未從登入驗證獲取憑證不予使用" %}
```
{
    "code": 401,
    "status": "error", 
    "message": "使用者未從登入驗證獲取憑證不予使用"
}
```
{% endtab %}

{% tab title="500: Internal Server Error 系統出錯" %}
```javascript
{
    "code": 500,
    "status": "error",
    "message": "系統出錯"
}
```
{% endtab %}

{% tab title="404: Not Found 對應推文不存在" %}
```javascript
{
    "code": 404,
    "status": "error", 
    "message": "對應推文不存在"
}
```
{% endtab %}

{% tab title="403: Forbidden 不可重複對同一篇推文表示喜歡" %}
```javascript
{
    "code": 403,
    "status": "error", 
    "message": "不可重複對同一篇推文表示喜歡"
}
```
{% endtab %}

{% tab title="403: Forbidden 存取被拒(管理員不能用前台功能)" %}
```javascript
{
    "code": 403,
    "status": "error", 
    "message": "存取被拒"
}
```
{% endtab %}
{% endtabs %}

## 以目前使用者來對指定推文表示不喜歡，即為回收喜歡

<mark style="color:green;">`POST`</mark> `hostname/api/tweets/:id/unlike`

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | 推文ID        |

{% tabs %}
{% tab title="200 成功回收喜歡，獲取被回收的like紀錄" %}
```javascript
{
    "status": "success",                        
    "data": {
        "id": integer,
        "UserId": integer,
        "TweetId": integer,
        "createdAt": timestamp
    },
    "message": "成功回收喜歡"
}
```
{% endtab %}

{% tab title="401: Unauthorized 使用者未從登入驗證獲取憑證不予使用" %}
```
{
    "code": 401,
    "status": "error", 
    "message": "使用者未從登入驗證獲取憑證不予使用"
}
```
{% endtab %}

{% tab title="500: Internal Server Error 系統出錯" %}
```javascript
{
    "code": 500,
    "status": "error",
    "message": "系統出錯"
}
```
{% endtab %}

{% tab title="404: Not Found 對應推文不存在" %}
```javascript
{
    "code": 404,
    "status": "error", 
    "message": "對應推文不存在"
}
```
{% endtab %}

{% tab title="403: Forbidden 不可重複對同一篇推文表示喜歡" %}
```javascript
{
    "code": 403,
    "status": "error", 
    "message": "不可重複對同一篇推文表示喜歡"
}
```
{% endtab %}

{% tab title="403: Forbidden 存取被拒(管理員不能用前台功能)" %}
```javascript
{
    "code": 403,
    "status": "error", 
    "message": "存取被拒"
}
```
{% endtab %}
{% endtabs %}
