## AielloBackendAPI-Dashnoard ### Introduction The User API provides functionality to manage user information within our application. ### Base URL Production: https://aiello-gate.azure-api.net/aiellobackendapi-dashboard/v1 Beta: https://aiello-gate.azure-api.net/aiellobackendapi-dashboard/beta Dev: https://aiello-gate-test.azure-api.net/aiellobackendapi-dashboard ### Authentication Ocp-Apim-Subscription-Key : ## Endpoint ### Task Overview #### **POST** `/hotels/{hotelName}/overview` #### Request ##### Body: ```json { "locations":["String","String"], //If it's null, calculate tasks for all locations, excluding 9999, 9998... "startTime":1687425097487L, //Required "endTime":1699425097487L //Required } ``` #### Response: HTTP Status: 200 OK ##### Body: ```json [ { "configTaskId": 55, "name": "Test01", "overview": { "counts": 0, "duration": null, "avg_duration": null, "avg_rate": null } }, { "configTaskId": 59, "name": "Test03", "overview": { "counts": 0, "duration": null, "avg_duration": null, "avg_rate": null } }, { "configTaskId": 243, "name": "In-Room Delivery", "overview": { "counts": 7, "duration": 2000, "avg_duration": 666, "avg_rate": null } } ] ``` #### Error 401 Unauthorized: Missing or invalid authentication. 404 Not Found: User not found. ##### Response when Elasticsearch error ```json [{     "configTaskId": 244,     "name": "Repair",     "overview": null   },   {     "configTaskId": 246,     "name": "Laundry",     "overview": {       "counts": 0,       "duration": null,       "hold": null,       "in-progress": null,       "avg_duration": null,       "avg_rate": null     }   }] ``` --- ### TaskDetail #### **POST** `/hotels/{hotelName}/taskDetail` #### Request ##### Body: ```json { "locations":["String","String"], //If it's null, calculate tasks for all locations, excluding 9999, 9998... "configTaskId": Integer, //Required "startTime":1687425097487L, //Required "endTime":1699425097487L //Required } ``` #### Response: HTTP Status: 200 OK ##### Body: ```json { "taskDetail": { "configTaskId": 243, "taskName": "In-Room Delivery", "overviewAndStatus": { "counts": 7, "status": { "COMPLETED": 3, "CANCEL": 0, "OPEN": 4, "ISSUE": 0 }, "rate_counts": 0, "has_issue_counts": 0, "avg_rate": null, "duration": 2000, "avg_duration": 666 } }, "worksDetail": [ { "configWorkId": 340, "workName": "Satisfaction Survey", "workOrder": 1, "timeTracking": { "counts": 3, "avg_hold": 0, "avg_ongoing": 0, "avg_duration": 261 } }, { "configWorkId": 339, "workName": "Delivery Process", "workOrder": 0, "timeTracking": { "counts": 3, "avg_hold": 0, "avg_ongoing": 0, "avg_duration": 978882 } } ] } ``` #### Error 401 Unauthorized: Missing or invalid authentication. 404 Not Found: User not found. 500 Can't find this task //wrong configTaskId ##### Response when Elasticsearch error ```json { "taskDetail": { "configTaskId": 243, "taskName": "In-Room Delivery", "overviewAndStatus": null }, "worksDetail": [ { "configWorkId": 339, "workName": "Delivery Process", "workOrder": 0, "timeTracking": { "counts": 3, "duration": 2936648, "hold": 0, "in-progress": 0, "avg_duration": 978882 } }, { "configWorkId": 340, "workName": "Satisfaction Survey", "workOrder": 1, "timeTracking": null } ] } ``` --- ### TaskTrend #### **POST** `/hotels/{hotelName}/taskTrend` #### Request ##### Body: ```json { "configTaskIds": ["total","String"], //Required, total for all task "locations":["String","String"], //If it's null, calculate tasks for all locations, excluding 9999, 9998... "startTime":1687425097487L, //Required "endTime":1699425097487L, //Required "offset": -28800000 //Required // "interval":"String", //Default 1d } ``` * interval * minute, 1m * hour, 1h * day, 1d * week, 1w * month, 1M * quarter, 1q * year, 1y #### Response: HTTP Status: 200 OK ##### Body: example 1 ```json [ { "configTaskId": "total", "diagramByHour": [ { "key_as_string": "2023-07-09T16:00:00.000+08:00", "key": 1688889600000, "doc_count": 0 }, { "key_as_string": "2023-07-09T17:00:00.000+08:00", "key": 1688893200000, "doc_count": 0 }, { "key_as_string": "2023-07-09T18:00:00.000+08:00", "key": 1688896800000, "doc_count": 0 }, { "key_as_string": "2023-07-09T19:00:00.000+08:00", "key": 1688900400000, "doc_count": 0 }, { "key_as_string": "2023-07-09T20:00:00.000+08:00", "key": 1688904000000, "doc_count": 0 }, { "key_as_string": "2023-07-09T21:00:00.000+08:00", "key": 1688907600000, "doc_count": 0 }, { "key_as_string": "2023-07-09T22:00:00.000+08:00", "key": 1688911200000, "doc_count": 0 }, { "key_as_string": "2023-07-09T23:00:00.000+08:00", "key": 1688914800000, "doc_count": 0 }, { "key_as_string": "2023-07-10T00:00:00.000+08:00", "key": 1688918400000, "doc_count": 0 }, { "key_as_string": "2023-07-10T01:00:00.000+08:00", "key": 1688922000000, "doc_count": 0 }, { "key_as_string": "2023-07-10T02:00:00.000+08:00", "key": 1688925600000, "doc_count": 0 }, { "key_as_string": "2023-07-10T03:00:00.000+08:00", "key": 1688929200000, "doc_count": 0 }, { "key_as_string": "2023-07-10T04:00:00.000+08:00", "key": 1688932800000, "doc_count": 0 }, { "key_as_string": "2023-07-10T05:00:00.000+08:00", "key": 1688936400000, "doc_count": 0 }, { "key_as_string": "2023-07-10T06:00:00.000+08:00", "key": 1688940000000, "doc_count": 0 }, { "key_as_string": "2023-07-10T07:00:00.000+08:00", "key": 1688943600000, "doc_count": 0 }, { "key_as_string": "2023-07-10T08:00:00.000+08:00", "key": 1688947200000, "doc_count": 0 }, { "key_as_string": "2023-07-10T09:00:00.000+08:00", "key": 1688950800000, "doc_count": 0 }, { "key_as_string": "2023-07-10T10:00:00.000+08:00", "key": 1688954400000, "doc_count": 0 }, { "key_as_string": "2023-07-10T11:00:00.000+08:00", "key": 1688958000000, "doc_count": 1 }, { "key_as_string": "2023-07-10T12:00:00.000+08:00", "key": 1688961600000, "doc_count": 0 }, { "key_as_string": "2023-07-10T13:00:00.000+08:00", "key": 1688965200000, "doc_count": 1 }, { "key_as_string": "2023-07-10T14:00:00.000+08:00", "key": 1688968800000, "doc_count": 0 }, { "key_as_string": "2023-07-10T15:00:00.000+08:00", "key": 1688972400000, "doc_count": 0 }, { "key_as_string": "2023-07-10T16:00:00.000+08:00", "key": 1688976000000, "doc_count": 0 } ], "diagramByDay": null, "diagramByMonth": null, "diagramWeekDay": [ { "key": "FRIDAY", "doc_count": 0 }, { "key": "MONDAY", "doc_count": 2 }, { "key": "SATURDAY", "doc_count": 0 }, { "key": "SUNDAY", "doc_count": 0 }, { "key": "THURSDAY", "doc_count": 0 }, { "key": "TUESDAY", "doc_count": 0 }, { "key": "WEDNESDAY", "doc_count": 0 } ], "diagramForEachHour": [ { "key": 0.0, "doc_count": 0 }, { "key": 1.0, "doc_count": 0 }, { "key": 2.0, "doc_count": 0 }, { "key": 3.0, "doc_count": 0 }, { "key": 4.0, "doc_count": 0 }, { "key": 5.0, "doc_count": 0 }, { "key": 6.0, "doc_count": 0 }, { "key": 7.0, "doc_count": 0 }, { "key": 8.0, "doc_count": 0 }, { "key": 9.0, "doc_count": 0 }, { "key": 10.0, "doc_count": 0 }, { "key": 11.0, "doc_count": 1 }, { "key": 12.0, "doc_count": 0 }, { "key": 13.0, "doc_count": 1 }, { "key": 14.0, "doc_count": 0 }, { "key": 15.0, "doc_count": 0 }, { "key": 16.0, "doc_count": 0 }, { "key": 17.0, "doc_count": 0 }, { "key": 18.0, "doc_count": 0 }, { "key": 19.0, "doc_count": 0 }, { "key": 20.0, "doc_count": 0 }, { "key": 21.0, "doc_count": 0 }, { "key": 22.0, "doc_count": 0 }, { "key": 23.0, "doc_count": 0 } ] } ] ``` example 2 ```json [ { "configTaskId": "total", "diagramByHour": null, "diagramByDay": [ { "key_as_string": "2023-07-09T00:00:00.000+08:00", "key": 1688832000000, "doc_count": 0 }, { "key_as_string": "2023-07-10T00:00:00.000+08:00", "key": 1688918400000, "doc_count": 2 }, { "key_as_string": "2023-07-11T00:00:00.000+08:00", "key": 1689004800000, "doc_count": 0 }, { "key_as_string": "2023-07-12T00:00:00.000+08:00", "key": 1689091200000, "doc_count": 0 }, { "key_as_string": "2023-07-13T00:00:00.000+08:00", "key": 1689177600000, "doc_count": 0 }, { "key_as_string": "2023-07-14T00:00:00.000+08:00", "key": 1689264000000, "doc_count": 0 }, { "key_as_string": "2023-07-15T00:00:00.000+08:00", "key": 1689350400000, "doc_count": 0 }, { "key_as_string": "2023-07-16T00:00:00.000+08:00", "key": 1689436800000, "doc_count": 0 }, { "key_as_string": "2023-07-17T00:00:00.000+08:00", "key": 1689523200000, "doc_count": 0 }, { "key_as_string": "2023-07-18T00:00:00.000+08:00", "key": 1689609600000, "doc_count": 0 }, { "key_as_string": "2023-07-19T00:00:00.000+08:00", "key": 1689696000000, "doc_count": 0 }, { "key_as_string": "2023-07-20T00:00:00.000+08:00", "key": 1689782400000, "doc_count": 0 }, { "key_as_string": "2023-07-21T00:00:00.000+08:00", "key": 1689868800000, "doc_count": 1 }, { "key_as_string": "2023-07-22T00:00:00.000+08:00", "key": 1689955200000, "doc_count": 0 }, { "key_as_string": "2023-07-23T00:00:00.000+08:00", "key": 1690041600000, "doc_count": 0 }, { "key_as_string": "2023-07-24T00:00:00.000+08:00", "key": 1690128000000, "doc_count": 0 }, { "key_as_string": "2023-07-25T00:00:00.000+08:00", "key": 1690214400000, "doc_count": 0 }, { "key_as_string": "2023-07-26T00:00:00.000+08:00", "key": 1690300800000, "doc_count": 0 }, { "key_as_string": "2023-07-27T00:00:00.000+08:00", "key": 1690387200000, "doc_count": 0 }, { "key_as_string": "2023-07-28T00:00:00.000+08:00", "key": 1690473600000, "doc_count": 6 }, { "key_as_string": "2023-07-29T00:00:00.000+08:00", "key": 1690560000000, "doc_count": 0 }, { "key_as_string": "2023-07-30T00:00:00.000+08:00", "key": 1690646400000, "doc_count": 0 }, { "key_as_string": "2023-07-31T00:00:00.000+08:00", "key": 1690732800000, "doc_count": 0 }, { "key_as_string": "2023-08-01T00:00:00.000+08:00", "key": 1690819200000, "doc_count": 0 }, { "key_as_string": "2023-08-02T00:00:00.000+08:00", "key": 1690905600000, "doc_count": 0 }, { "key_as_string": "2023-08-03T00:00:00.000+08:00", "key": 1690992000000, "doc_count": 0 }, { "key_as_string": "2023-08-04T00:00:00.000+08:00", "key": 1691078400000, "doc_count": 0 }, { "key_as_string": "2023-08-05T00:00:00.000+08:00", "key": 1691164800000, "doc_count": 0 }, { "key_as_string": "2023-08-06T00:00:00.000+08:00", "key": 1691251200000, "doc_count": 0 }, { "key_as_string": "2023-08-07T00:00:00.000+08:00", "key": 1691337600000, "doc_count": 17 }, { "key_as_string": "2023-08-08T00:00:00.000+08:00", "key": 1691424000000, "doc_count": 0 }, { "key_as_string": "2023-08-09T00:00:00.000+08:00", "key": 1691510400000, "doc_count": 0 } ], "diagramByMonth": [ { "key_as_string": "2023-07-01T00:00:00.000+08:00", "key": 1688140800000, "doc_count": 9 }, { "key_as_string": "2023-08-01T00:00:00.000+08:00", "key": 1690819200000, "doc_count": 17 } ], "diagramWeekDay": [ { "key": "FRIDAY", "doc_count": 7 }, { "key": "MONDAY", "doc_count": 19 }, { "key": "SATURDAY", "doc_count": 0 }, { "key": "SUNDAY", "doc_count": 0 }, { "key": "THURSDAY", "doc_count": 0 }, { "key": "TUESDAY", "doc_count": 0 }, { "key": "WEDNESDAY", "doc_count": 0 } ], "diagramForEachHour": [ { "key": 0.0, "doc_count": 0 }, { "key": 1.0, "doc_count": 0 }, { "key": 2.0, "doc_count": 0 }, { "key": 3.0, "doc_count": 0 }, { "key": 4.0, "doc_count": 0 }, { "key": 5.0, "doc_count": 0 }, { "key": 6.0, "doc_count": 0 }, { "key": 7.0, "doc_count": 0 }, { "key": 8.0, "doc_count": 0 }, { "key": 9.0, "doc_count": 0 }, { "key": 10.0, "doc_count": 0 }, { "key": 11.0, "doc_count": 1 }, { "key": 12.0, "doc_count": 0 }, { "key": 13.0, "doc_count": 3 }, { "key": 14.0, "doc_count": 13 }, { "key": 15.0, "doc_count": 8 }, { "key": 16.0, "doc_count": 0 }, { "key": 17.0, "doc_count": 0 }, { "key": 18.0, "doc_count": 1 }, { "key": 19.0, "doc_count": 0 }, { "key": 20.0, "doc_count": 0 }, { "key": 21.0, "doc_count": 0 }, { "key": 22.0, "doc_count": 0 }, { "key": 23.0, "doc_count": 0 } ] } ] ``` #### Error 401 Unauthorized: Missing or invalid authentication. 404 Not Found: User not found. --- ### TaskLogExport #### **POST** `/hotels/{hotelName}/export/task?offset={offset}&startTime={startTime}&endTime={endTime}` #### Request ##### Parameter * offset (milliSecond) * starTime (milliSecond) * endTime (milliSecond) ##### Body: ```json { "password": "String", //Required, password for open excel file "locations":["String","String"] //If it's null, calculate tasks for all locations, excluding 9999, 9998... } ``` #### Response: HTTP Status: 200 OK **BATCH_THRESHOLD** : default is 60000 If the number of logs does not exceed the **BATCH_THRESHOLD**, will return excel file. If the number of logs exceed the **BATCH_THRESHOLD**, will return a zip file which contain several excel files. --- ### VoiceIntentExport #### **POST** `/hotels/{hotelName}/export/voiceIntent?offset={offset}&startTime={startTime}&endTime={endTime}` #### Request ##### Parameter * offset (milliSecond) * starTime (milliSecond) * endTime (milliSecond) ##### Body: ```json { "password": "String", //Required, password for open excel file "locations":["String","String"] //If it's null, calculate tasks for all locations, excluding 9999, 9998... } ``` #### Response: HTTP Status: 200 OK **BATCH_THRESHOLD** : default is 60000 If the number of logs does not exceed the **BATCH_THRESHOLD**, will return excel file. If the number of logs exceed the **BATCH_THRESHOLD**, will return a zip file which contain several excel files.