# 體感相關
---
API 清單
* [上傳體感分數(使用體感APP)](#上傳體感分數)
* [取得個人體感分數](#取得體感分數)
---
## 上傳體感分數
透過體二APP上傳體感分數
```url=
POST /body-motion/course/record/update
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | String | Y | | 透過QR抓出來的用戶ID
token | String | Y | | 365配發token, 後續如果要補上登入流程, 這個再拿掉
trainingId | int | Y | | 訓練課程ID
unitId | int | Y | | 單元ID
trainingTime | int | Y | | 訓練時間
value | float | Y | | 體感分數
```javascript
{
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"token": "d2ljY2ttdWg6V2ljY2ttdWhXaXN0cm9u",
"trainingId": 27,
"unitId": 45,
"trainingTime": 1617164391,
"value": 30
}
```
Response
欄位 | 型態 | 說明
-----| -----|--------
data | int | 新增/編輯個數
```javascript
{
"httpCode": 200,
"result": {
"data": 1
}
}
```
## 取得體感分數
取得體感分數
```url=
POST /body-motion/course/record/list
```
Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
householdMemberId | String | N | | APP用戶不需要帶, 會重token抓出來
type | int | N | | 課程類型, 1: 訓練 2: 快篩. 不帶的話就查全部
```javascript
{
"query": {
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"type": 1,
}
}
```
Response
欄位 | 型態 | 說明
-----| -----|--------
householdMemberId | String | 用戶ID
startTime | Long | 訓練時間
unitId | int | 訓練單元ID
unitName | String | 訓練單元名稱
duration | int | 訓練執行時間(分)
type | int | 課程類型, 1: 訓練 2: 快篩
achieved | int | 所有訓練課程的總達標狀態. 0: 未達標 1: 達標
records | array | 本次訓練單元包含多少次訓練項目
-id | int | 訓練項目ID
-name | String | 訓練項目名稱
-value | Float | 訓練分數
-target | Float | 訓練目標
-unit | String |分數單位
-achieved | int | 0: 未達標 1: 達標
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"unitId": 46,
"unitName": "失智快篩",
"duration": 30,
"type": 2,
"startTime": 1617164391000,
"records": [
{
"id": 28,
"name": "時間辨識",
"value": 30.0,
"target": 40.0,
"unit": "次",
"achieved": 0
},
{
"id": 27,
"name": "記憶力",
"value": 30.0,
"target": 20.0,
"unit": "次",
"achieved": 1
}
]
}
]
}
}
```