# 登入
獲取token及user id供以下api使用
* [取得使用者資訊](#取得使用者資訊)
* [取得Group資訊](#取得Group資訊)
* [取得Tenant裡的device](#取得Tenant裡的device)
* [取得VideoRecording的紀錄](#取得VideoRecording的紀錄)
* [下載VideoRecording](#下載VideoRecording)
* [取得VideoInfo](#取得VideoInfo)
* [取得DeviceGPS](#取得DeviceGPS)
* [取得Device的串流影音資訊](#取得Device的串流影音資訊)
* [取得DeviceEvent的紀錄](#取得DeviceEvent的紀錄)
* [取得tenant裡的notification的紀錄](#取得tenant裡的notification的紀錄)
* [取得tenant底下所有人的資訊](#取得tenant底下所有人的資訊)
Request URL
---
```
POST /api/login/web
```
Request Body Param
---
| 欄位 | 型態 | 說明 |
| -------- | ------ | ---- |
| account | string | 帳號 |
| password | string | 密碼 |
Request Body Example
---
```
{
"account": "cina",
"password": "HiThere",
}
```
Response Body Param
---
| 欄位 | 型態 | 說明 |
| ------------ | --------- | --------------- |
| expiresIn | timestamp | token到期日 |
| refreshToken | string | 用來取得新token |
| userId | string | 使用者id |
| userToken | string | 認證身份的token |
**Response Body Example**
---
```
{
"httpCode": 200,
"result": {
"data": {
"expiresIn": "631ee4e8-69cf-4163-3c0e-74d25cbf4c7c",
"refreshToken": "Uje06fwuXx4cxf3v2IGxKsUz2zRmOEoDDiRzonhTSsCkROvVhZBsU0aGGg4ts23T"
"userId": "cina_yeh_web",
"userToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJBSU9UIiwicGVybWlzc2lvbnMiOlsiQ09MRF9DSEFJTiIsIlBFUk1JU1NJT05fTUdNIiwiQUNDT1VOVF9NR00iLCJERVZJQ0VfVFlQRV9NR00iLCJERVZJQ0VfTUdNIiwiRklSTVdBUkVfTUdNIiwiR1JPVVBTX0RFVklDRV9NR00iLCJTVEFGRklOR19NR00iLCJNT0JJTEVfREVWSUNFX01HTSIsIkRFVklDRV9DT05GSUciLCJBSVJfT1RBX01HTSIsIkRFVklDRV9NQVAiLCJURU5BTlRfTUdNIl0sInVzZXJBY2NvdW50IjoiY2luYV95ZWhfd2ViIiwiaXNzIjoiV2lzdHJvbiBTV1BDIiwidGVuYW50SWQiOiI0MTc0MmJiYS04YWYzLTQzZDQtYTI5Ny1kYmRhYTY2MGNiNDQiLCJpc1ZlbmRvciI6ZmFsc2UsInVzZXJBY2NvdW50VHlwZSI6IldFQiIsImV4cCI6MTY3Nzg3MTMwOSwidXNlcklkIjoiNjMxZWU0ZTgtNjljZi00NjEzLThjN2UtMTRkNjBjYmY0YzdjIiwiaWF0IjoxNjc3ODI4MTA5LCJqdGkiOiJlOWI4MWM4My1hOGU0LTRmMzUtOTRkZi1hMmY3NDI3YTk1Y2IifQ.Xal3eKT9i0TrcNjSpxV-MB4sl9IZI5GWH1WD2v-abeYHTLdcqgU7sHXvLZXupm9jhmltQoL9Aj7DNUOuVyz6u9r7GFVj_IzUfjlEqZMM_0MjNupH1pmOIOK-utCluBNo7O71CM7ekX78lKltsNuFRjplIhXyPJH61qhE8x7eZ-eoivGbBtFAzepBSzXFN3Xk3h6D7Qz2dp39bM8HSuj4lPPUe-u_x0qRt93wz8Jj8FFZbKjlt0qPXhSjorhPNpAzbj8MtfCJt6q1MbFozmd0Ty6zqbKCbYjE-HqgXJgEmjd09p1_7eKnybPECyRXqKPkPWd_N5gFd2nha0WmJbPz0-M_Z4OshclMo2g52l0knNOQE9XYY-DDVGeV2rjAkB58LHSSB5mBKwpJtAoeIEkB9EQRR_q4_JWjY1oZ6HA7CzZElYXSTRe02bvQPJ967ntxvJE6ZF5duXH9Uw5Q_ooGSJ2HGjDOqLIKLWcabobk4X7uGQnwB3tr-kQrev4bQdM56za2rZUpODjI2Lz11ZtHzKkssboX1_CUNLejuC2lhSmunxDT-Q-rpwPGufc8niFidbfqerMO8B58xwmHeI1OY7eLjXyVJiLR_Czr3fGoNhn51jxsB5UEhUU39LQ67UXLMiGNi4Icd3rXyAKBeyUb0WgjcH8OTtU1jilzs609ugo",
}
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------------------------ | ----------------- |
| 422 | SERVICE_ERROR.ACCOUNT_NOT_EXISTS | 帳號不存在 |
| 422 | SERVICE_ERROR.ACCOUNT_NOT_ENABLED | 帳號未啟用 |
| 422 | SERVICE_ERROR.ACCOUNT_OR_PASSWORD_IS_EMPTY | 帳號或密碼為空 |
| 422 | SERVICE_ERROR.PASSWORD_ERROR | 密碼錯誤 |
| 422 | SERVICE_ERROR.TENANT_NOT_ENABLED | 組織未啟用 |
| 422 | SERVICE_ERROR.SYSTEM_ERROR | 不明系統錯誤 |
**Error Response Body Example**
---
```
{
"errorMsg": "SERVICE_ERROR.ACCOUNT_NOT_EXISTS",
"httpCode": 422
}
```
# 取得使用者資訊
**Request url**
---
```
POST /api/tenant-account/get
```
**Query Param**
| 欄位 | 型態 | 說明 |
| -------- | -------- | -------- |
| userId | string | 帳號id,唯一值 |
```
{
"userId": "594bcf8d-a134-4efd-9366-392b8194e631"
}
```
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| ----------- | ------------ | --------------------------------- |
| accountType | string | 帳號型態 |
| birthDate | Text | 生日 |
| email1 | Text | 使用者主要電子信箱 |
| gender | int | 性別 1:男性/2:女性 |
| roleList | string array | 角色陣列 |
| status | bool | 啟用狀態, true: 啟用, false: 停用 |
| tenantId | Text | Text |
| tenantName | string | 組織名稱 |
| updateTime | timestamp | 最後更新時間 |
| userAccount | string | 帳號名稱 |
| userId | string | 帳號 id |
| userName | string | 姓名 |
**Response Body Example**
---
```
{
"httpCode": 200,
"result": {
"data": {
"userId": "631ee4e8-69cf-4163-3c0e-74d25cbf4c7c",
"accountType": "WEB"
"userAccount": "cina_yeh_web",
"userName": "cina_w",
"gender": 1,
"birthDate": 1642608000000,
"tenantId": "41742bba-8af3-43d4-a297-dbdaa660cb55",
"tenantName": "WiBASE",
"status": true,
"email1": "cina@wibase.com",
"updateTime": 1610588709000,
"roleList": [
{
"roleId":"3487ccd-343mm0e-dcwer03-4434",
"roleName": "Wibase_admin",
"roleNo": "R002",
"permissionList": ["TENANT_MGM","PERMISSION_MGM"]
},
]
}
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | -------------------------------- | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
| 422 | SERVICE_ERROR.ACCOUNT_NOT_EXISTS | user id 不存在 |
**Error Response Body Example**
---
```
{
"errorMsg": "SERVICE_ERROR.ACCOUNT_NOT_EXISTS",
"httpCode": 422
}
```
# 取得Group資訊
**Request URL**
---
```
GET /api/groups
```
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| -------- | ------ | --------- |
| id | string | group id |
| name | string | group名稱 |
| children | Text | 附屬group |
**Response Body Example**
---
```
[
{
"id":"e88920ff-37c9-4c1d-93e8-9a2afb9a7e1d",
"name":"QS",
"children":[]
},
]
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得Tenant裡的device
透過[取得Group資訊](#取得Group資訊),來獲得group id
**Request URL**
---
```
POST /api/deviceMgmt/getTenantDevice
```
Request Body Param
---
| 欄位 | 型態 | 說明 |
| -------- | -------- | -------- |
| account | string | 帳號 |
| password | string | 密碼 |
Request Body Example
---
```
{
"groupId": "e88920ff-37v7-2g5d-24e8-9a2afb9a7e1d",
}
```
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| ----------- | ------ | ---------------- |
| userId | string | 使用者id |
| userName | string | 使用者名稱 |
| userAccount | string | 使用者帳號名稱 |
| tenantId | string | tenand id |
| tenantName | string | tenant名字 |
| rentList | string | 租借了多少台裝置 |
| deviceId | string | 裝置id |
| deviceType | string | 裝置類型 |
| groupId | string | group id |
| camCount | int | camera 數量 |
**Response Body Example**
---
```
[
{
"userId":"f22f70d3-d335-4b7b-a21c-9a3cb7b184d0",
"userName":"SQM",
"userAccount":"SQM",
"tenantId":"41742bba-8af3-43d4-a297-dbdaa660cb44",
"tenantName":"WiBASE",
"rentList":[
{
"deviceId":"WC-Q2010-002327",
"deviceType":"Body-worn-camera",
"groupId":"e88920ff-37c9-4c1d-93e8-9a2afb9a7e1d",
"camCount":1
}
]
},
]
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得VideoRecording的紀錄
需先透過[取得Tenant裡的device](#取得Tenant裡的device)、[取得Group資訊](#取得Group資訊),來得到deviceIdList, userIdList, tenantId
**Request URL**
---
```
POST /api/map/getRecordingsList
```
Request Body Param
---
| 欄位 | 型態 | 說明 |
| ------------ | --------- | --------------------- |
| pagination | object | 分頁 |
| query | object | query條件 |
| current | int | 當前頁數 |
| pageSize | int | 每頁最多多少筆資料 |
| camNoList | int | 第幾顆鏡頭 |
| deviceIdList | list | device list |
| endTime | timestamp | 結束時間 |
| searchType | string | 搜尋類別 |
| startDate | string | 開始日期 |
| startTime | timestamp | 開始時間 |
| stopDate | string | 結束日期 |
| tenantId | string | group的id |
| userIdList | string | user list |
| sorter | object | 排序條件 |
| field | string | 根據哪個field來做排序 |
| order | string | 升序、降序 |
Request Body Example
---
```
{
"query":{
"searchType":"VIDEO",
"startDate":"2022-01-31T16:00:00.000Z",
"stopDate":"2023-03-07T15:59:59.999Z",
"tenantId":"41320d11-e6a5-4586-b197-2de4715c261a",
"deviceIdList":[
"WC-Q2010-002152"
],
"camNoList":[
0
],
"userIdList":[
"417b6a9a-ba04-4e04-ade5-4dfaa3a32533"
],
"startTime":1643644800000,
"endTime":1678204799999
},
"pagination":{
"current":1,
"pageSize":10
},
"sorter":{
"filed": "",
"oreder": "desc",
}
}
```
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| ---------- | ------ | ----------- |
| id | string | re |
| userName | string | 使用者名稱 |
| userId | string | 使用者Id |
| deviceId | string | device id |
| camNo | string | tenant名字 |
| createdAt | string | 建立時間 |
| source | string | 來源 |
| pagination | string | 分頁 |
| current | string | 當前頁數 |
| pageSize | int | page數量 |
| total | int | 當前頁數有幾筆資料 |
| sorter | int | 排序條件 |
| total | int | 總共幾筆資料 |
**Response Body Example**
---
```
{
"httpCode":200,
"result":{
"data":[
{
"id":"86d4bb8c-d0f9-480e-96b4-0d5d06e38bb6",
"userName":"DQA",
"userId":"4b8d2c90-772d-482f-9dbc-198bf3d15c1b",
"deviceId":"WC-Q2010-004943",
"camNo":"0",
"createdAt":1670390241000,
"source":"UpLoading"
},
],
"pagination":{
"current":1,
"pageSize":10,
"total":7
},
"sorter":{},
"total":7
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 下載VideoRecording
需先透過[取得Recordings list](#取得VideoRecording的紀錄),得到videoId
**Request URL**
---
```
POST /api/device-management/recordings/{videoId}/origin
```
Request URL Param
---
| 欄位 | 型態 | 說明 |
| ------- | ------ | -------- |
| videoId | string | video id |
**Response Body Param**
---
```
https://dernoiwfno3q6.cloudfront.net/wizkloud-vod/WC-Q2010-002327/WC-Q2010-002327_2e31dcea-f7ef-4a85-bb62-128912287966/202210281656_2995.mp4?Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vZDN0NDh0MXdqbWE5cTYuY2xvdWRmcm9udC5uZXQvd2l6a2xvdWQtdm9kL1dDLVEyMDEwLTAwMjMyNy9XQy1RMjAxMC0wMDIzMjdfMmUzMWRjZWEtZjdlZi00YTg1LWJiNjIt3fp3mo43omf3p2LzIwMjIxMDI4MTY1Nl8yOTk1Lm1wNCIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTY3ODE2OTQ0Nn19fV19&Signature=mV9llyRHPsp7I10gbLeSqMvywgdhj~gCL2HimYqkeedhMPVk9XvsztL8RLYl42E97NyG3n1IqQfL-qvTG9P5l9NPUhgw4-JdGRj4K-rz73WlJIvNr7J3w9MjpME~Cd~FhLHf4xwi1ZKhU5To9DHAC1jFEVA~RvkUxb7eK0xC1Pn1cotnIO8AUC0hgVfSFJlS0Ox1qA6pq3LrXAa6rubXFIVBY2C~rbwfxw-RrwRGzMi3H0ueTRzK4ziClYS3ybUdgaubUL-y-NsveuneW7fslZAdDADfGWY5PFl1HRtmXv7-9ghIO5O9Ie4pom3f3p43f43f35U3SyPZg2zVp~Sg__&Key-Pair-Id=K3M80B96BD6RC7
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得VideoInfo
需先透過[取得Recordings list](#取得VideoRecording的紀錄),得到videoId
**Request URL**
---
```
POST /api/device-management/recordings/{videoId}/vedioInfo
```
Request URL Param
---
| 欄位 | 型態 | 說明 |
| ------- | ------ | -------- |
| videoId | string | video id |
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| ------------- | --------- | -------------- |
| source | string | 來源 |
| size | int | 檔案大小 |
| startTime | timestamp | 開始時間 |
| duration | float | 錄了多久 |
| recodingUuid | string | recording uuid |
| fileExtension | string | 檔案類型 |
**Response Body Example**
---
```
{
"httpCode":200,
"result":{
"data":{
"source":"Recording",
"size":15958728,
"startTime":1666947450000,
"duration":59498.0,
"recodingUuid":"bc6c1e52-ef3b-4b9c-9d45-32e474ceb6fd",
"fileExtension":".mp4"
}
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得DeviceGPS
**Request URL**
---
```
POST /api/map/gnss/list
```
Request Body Param
---
| 欄位 | 型態 | 說明 |
| ---------- | --------- | --------- |
| query | object | query條件 |
| deviceId | string | device id |
| start | timestamp | 開始時間 |
| end | timestamp | 結束時間 |
| pagination | object | 分頁 |
| current | int | 當前的頁數 |
| pageSize | int | 每頁最多多少筆資料 |
| sorter | object | 排序條件 |
**Request Body Example**
---
```
{
"query":{
"deviceId":"WC-Q2010-002327",
"start":1666947450000,
"end":1666947509498
},
"pagination":{
"current":1,
"pageSize":10
},
"sorter":{
}
}
```
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| --------- | --------- | --------- |
| deviceId | string | device Id |
| coords | object | 位置 |
| latitude | float | 緯度 |
| longitude | float | 經度 |
| altidude | float | 高度 |
| timestamp | timestamp | 所在的時間點 |
**Response Body Example**
---
```
{
"httpCode":200,
"result":{
"data":[
{
"deviceId":"WC-Q2010-002327",
"coords":{
"latitude":25.0581351,
"longitude":121.6125134,
"altidude":282.118042
},
"timestamp":1666947501000
}
]
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得Device的串流影音資訊
需先透過[取得Recordings list](#取得VideoRecording的紀錄),得到videoId
**Request URL**
---
```
POST /api/device-management/recordings/{videoId}/vod
```
Request URL Param
---
| 欄位 | 型態 | 說明 |
| ------- | ------ | -------- |
| videoId | string | video id |
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| --------- | --------- | --------- |
| url | string | 串流url |
| signature | string | 串流signature |
| keyPairId | string | 串流keyPairId |
| policy | string | policy |
**Response Body Example**
---
```
{
"httpCode":200,
"result":{
"data":{
"url":"https://fpwvw8t1wjma9q6.cloudfront.net/wizkloud-vod/WC-Q2010-002327/WC-Q2010-009988_2e31dcea-f7ef-4a85-bb62-128912287966/output/202210281656_2995.m3u8",
"signature":"KqnFdz5Wdsi-IHmnwrRDEW1HZ6OkR6U6ZpfjKOCferowgXt437ZznsqAL6duGnqLMl6jgWRBIxtGPpFDP9rnXexBfjvFaJLbnRThaqBsTnFmS0C57dFPYdSXhNlLKHVGnukmQLtrsiGCG-NfwppOZjik80N6K8xeQo89s1XvLaEo7uWa3gjaqsL4,vxp71Zv3aUGn2ot8sMjbi19AHAL0Y2Ht1r2nTwuxrxu3oVRRGcqOFlmZwYq2zzxkIuiRgBy6WlV-pKufaReMDMb2Vt1HSciAPDdaxLbiq2N4p0nVkH-YHHGEFI~MNCxFJckC19XwXfkKDtqTygHYCAMKTbbr0A__",
"keyPairId":"K3M80B9we5D6RC7",
"policy":"eyJTdGF0ZW1lbnQiOiBbeywebpwNvdXJjZSI6Imh0dHBzOi8vZDN0NDh0MXdqbWE5cTYuY2xvdWRmcm9udC5uZXQvd2l6a2xvdWQtdm9kL1dDLVEyMDEwLTAwMjMyNy9XQy1RMjAxMC0wMDIzMjdfMmUzMWRjZWEtZjdlZi00YTg1LWJiNjItMTI4OTEyMjg3OTY2L291dHB1dC8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZ2obwGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNjc4MjU0MDQyfX19XX0_"
}
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得DeviceEvent的紀錄
需先透過[取得Tenant裡的device](#取得Tenant裡的device)、[取得Group資訊](#取得Group資訊),來得到deviceIdList, userIdList, tenantId
**Request URL**
---
```
POST api/map/getEventList
```
Request Body Param
---
| 欄位 | 型態 | 說明 |
| ------------ | ------------ | --------------------- |
| query | object | query條件 |
| searchType | string | 搜尋類別 |
| startDate | string | 開始日期 |
| stopDate | string | 結束日期 |
| tenantId | string | tenant id |
| deviceIdList | list(string) | device id |
| userIdList | list(string) | user id |
| startTime | timestamp | 開始時間 |
| endTime | timestamp | 結束時間 |
| pagination | ojbect | 分頁 |
| current | int | 當前頁數 |
| pageSize | int | 每頁最多多少筆資料 |
| sorter | object | 排序條件 |
| field | string | 根據哪個field來做排序 |
| order | string | 升序、降序 |
**Request Body Example**
---
```
{
"query":{
"searchType":"EVENT",
"startDate":"2022-02-28T16:00:00.000Z",
"stopDate":"2023-03-07T15:59:59.999Z",
"tenantId":"e88920ff-37c9-4c1d-93e8-9a2afb9a7e1d",
"deviceIdList":[
"WC-Q2010-003796"
],
"userIdList":[
"e6076a02-14b1-4e74-9e7b-e864e6552cbf",
"f22f70d3-d335-4b7b-a21c-9a3cb7b184d0",
"4b8d2c90-772d-482f-9dbc-198bf3d15c1b"
],
"startTime":1646064000000,
"endTime":1678204799999
},
"pagination":{
"current":1,
"pageSize":10
},
"sorter":{}
}
```
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| ---------- | ------ | --------------------- |
| userId | string | user id |
| userName | string | username |
| deviceId | string | deviceId |
| eventTime | string | 事件觸發時間 |
| eventLevel | string | 事件等級 |
| eventTitle | string | 事件名稱 |
| isRecorded | string | 是否recorded |
| latitude | string | 緯度 |
| longitude | string | 經度 |
| pagination | object | 分頁條件 |
| current | int | 當前頁數 |
| pageSize | int | 每頁最多多少筆資料 |
| total | int | 當前頁數有幾筆資料 |
| sorter | object | 排序條件 |
| field | string | 根據哪個filed來做排序 |
| order | string | 升序、降序 |
| total | int | 總共幾筆資料 |
**Response Body Example**
---
```
{
"httpCode":200,
"result":{
"data":[
{
"userId":"e6076a02-14b1-4e74-9e7b-e864e6552cbf",
"userName":"RMA",
"deviceId":"WC-Q2010-003796",
"eventTime":1663122641401,
"eventLevel":"High",
"eventTitle":"SOS",
"isRecorded":false,
"latitude":"25.05793411575587",
"longitude":"121.6384537402821"
}
],
"pagination":{
"current":1,
"pageSize":10,
"total":1
},
"sorter":{
},
"total":1
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得tenant裡的notification的紀錄
需先透過[取得使用者資訊](#取得使用者資訊)來獲得tenantId
**Request URL**
---
```
GET /api/notification/{tenantId}
```
Request URL Param
---
| 欄位 | 型態 | 說明 |
| -------- | ------ | --------- |
| tenantId | string | tenant id |
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| -------------------- | --------- | --------------------- |
| id | string | event id |
| deviceId | string | device id |
| msgId | string | msgId |
| notificationType | string | notification 類型代稱 |
| eventTimestamp | timestamp | 觸發時間 |
| groupName | string | 觸發人員所在的group |
| groupId | string | group id |
| userName | string | 觸發人員的名字 |
| notificationTypeName | string | notification 類型名稱 |
**Response Body Example**
---
```
{
"httpCode":200,
"result":{
"data":[
{
"id":"4b042049-ecf1-4541-90c5-8340d3ae7010",
"deviceId":"WD-Q2030-001184",
"msgId":"uuid",
"notificationType":"S",
"eventTimestamp":1678141291148,
"groupName":"SW",
"groupId":"4fb9fcb2-25dd-4184-b5d0-ebc32bebf4e1",
"userName":"YC",
"notificationTypeName":"SOS"
},...
]
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```
# 取得tenant底下所有人的資訊
需先透過[取得使用者資訊](#取得使用者資訊)來獲得tenantId
**Request URL**
---
```
GET /api/notification/mapping/{tenantId}
```
Request URL Param
---
| 欄位 | 型態 | 說明 |
| -------- | ------ | --------- |
| tenantId | string | tenant id |
**Response Body Param**
---
| 欄位 | 型態 | 說明 |
| ----------- | --------- | --------------------- |
| accountId | string | 帳號名稱id |
| accountName | string | 帳號名稱 |
| tenantId | string | 使用者所在的tenant id |
| tenantName | string | 使用者所在的tenant |
| groupId | timestamp | 使用者所在的group id |
| groupName | string | 使用者所在的group name |
**Response Body Example**
---
```
{
"httpCode":200,
"result":{
"data":[
{
"accountId":"c11c6b6f-2159-44b2-8001-a65c975526ad",
"accountName":"Erica",
"tenantId":"41742bba-8af3-43d4-a297-dbdaa660cb44",
"tenantName":"WiBASE",
"groupId":"9d3701b1-8317-466c-9546-245f945293ed",
"groupName":"WiZAVIU 1"
}....
]
}
}
```
**Error Response Body**
---
| httpCode | errorMsg | errorMsg describe |
| -------- | ------------------------ | ------------------------- |
| 400 | API_ERROR.ARGUMENT_ERROR | 參數錯誤 |
| 401 | API_ERROR.UNAUTHORIZED | 使用者未登入或Token已過期 |
**Error Response Body Example**
---
```
{
"errorMsg": "SAPI_ERROR.UNAUTHORIZED",
"httpCode": 401
}
```