# API Documentation Description: 視障預約系統整合華夏多路線監控系統介面之 API 接口文件 Version: 1.0 Last updated time: 2020/05/25 --- ### `joinRoom` 加入 OperatorID 房間以接收該公司的視障者預約訊息 **Direction:** Web client to server **Payload:** - `OperatoID` (string): 營運業者的 ID. <br>Source: https://ptx.transportdata.tw/MOTC?t=Bus&v=2#!/CityBus/CityBusApi_Operator **Payload Example:** ``` { "OperatoID: "100" } ``` **Response:** - `OperatoID` (string): 營運業者的 ID. <br>Source: https://ptx.transportdata.tw/MOTC?t=Bus&v=2#!/CityBus/CityBusApi_Operator - `Status` (int): - 0: join room successfully - 1: `OperatoID` not found **Response Examples:** ``` { "OperatoID: "100", "Status": 0 } ``` <br> --- ### `leaveRoom` 離開該房間 **Direction:** Web client to server **Payload:** - `OperatoID` (string): 營運業者的 ID. <br>Source: https://ptx.transportdata.tw/MOTC?t=Bus&v=2#!/CityBus/CityBusApi_Operator **Payload Example:** ``` { "OperatorID": "100" } ``` **Response:** - `OperatoID` (string): 營運業者的 ID. <br>Source: https://ptx.transportdata.tw/MOTC?t=Bus&v=2#!/CityBus/CityBusApi_Operator - `Status` (int): - 0: join room successfully - 1: `OperatorID` not found **Response Examples:** ``` { "OperatorID": "100", "Status": 0 } ``` <br> --- ### `getAllRequests` 取得該公司的所有預約訊息 **Direction:** Web client to server **Payload:** - `OperatoID` (string): 營運業者的 ID. <br>Source: https://ptx.transportdata.tw/MOTC?t=Bus&v=2#!/CityBus/CityBusApi_Operator **Payload Example:** ``` { "OperatorID": "100" } ``` **Response:** - `Status` (int): - 0: Success - 1: `OperatorID` not found - `Requests` (Request): Array of ++Request++ ++Request++ - `ID` (int): 預約的 ID - `ReservedTime` (int): 建立預約的時間,使用 Unix Timestamp - `StartStopName` (string): 預約上車的站牌名稱 - `DestStopName` (string, *nullable*): 預約下車的站牌名稱,如果還沒預約下車的話則為 null - `RouteName` (string): 預約公車路線的名稱 - `DirectionName` (string): 方向名稱 - `PlateNumber` (string): 車牌號碼 - `HasDriverClicked` (boolean): 司機是否按下「確認接收預約請求」按鈕 - `Progress` (int): 預約的當前狀態 - 0: 預約中 - 1: 預約成功,候車中 - 2: 乘車中 - 3: 已下車,旅程結束 - 4: 取消預約 - 5: 已上車 **Response Examples:** ``` { "Status": 0, "Requests": [ { "ID": 132, "ReservedTime": 1587275193, "StartStopName": "捷運行天宮站", "DestStopName": null, "RouteName": "222", "DirectionName": "往內湖", "PlateNumber": "716-FZ", "HasDriverClicked": False, "Progress": 4 }, ... ] } ``` <br> --- ### `newRequest` 通知 Client 有新的預約 **Direction:** Server to web client **Payload:** - `ID` (int): 預約的 ID - `ReservedTime` (int): 建立預約的時間,使用 Unix Timestamp - `StartStopName` (string): 預約上車的站牌名稱 - `DestStopName` (string, *nullable*): 預約下車的站牌名稱,如果還沒預約下車的話則為 null - `RouteName` (string): 預約公車路線的名稱 - `DirectionName` (string): 方向名稱 - `PlateNumber` (string): 車牌號碼 - `HasDriverClicked` (boolean): 司機是否按下「確認接收預約請求」按鈕 - `Progress` (int): 預約的當前狀態 - 0: 預約中 - 1: 預約成功,候車中 - 2: 乘車中 - 3: 已下車,旅程結束 - 4: 取消預約 - 5: 已上車 **Payload Example:** ``` { "ID": 132, "ReservedTime": 1587275193, "StartStopName": "捷運行天宮站", "DestStopName": null, "RouteName": "222", "DirectionName": "往內湖", "PlateNumber": "716-FZ", "HasDriverClicked": False, "Progress": 4 } ``` **Response:** No need to response <br> --- ### `requestUpdate` 預約請求更新 **Direction:** Server to web client **Payload:** - `ID` (int): 預約的 ID - `ReservedTime` (int, *optional*): 建立預約的時間,使用 Unix Timestamp - `StartStopName` (string, *optional*): 預約上車的站牌名稱 - `DestStopName` (string, *optional*): 預約下車的站牌名稱,如果還沒預約下車的話則為 null - `RouteName` (string, *optional*): 預約公車路線的名稱 - `DirectionName` (string, *optional*): 方向名稱 - `PlateNumber` (string, *optional*): 車牌號碼 - `HasDriverClicked` (boolean, *optional*): 司機是否按下「確認接收預約請求」按鈕 - `Progress` (int, *optional*): 預約的當前狀態 - 0: 預約中 - 1: 預約成功,候車中 - 2: 乘車中 - 3: 已下車,旅程結束 - 4: 取消預約 - 5: 已上車 **Payload Example:** 更改預約進度: ``` { "ID": 132, "Progress": 3 } ``` 更改預約進度且設定預約下車站牌: ``` { "ID": 132, "Progress": 3, "DestStopName": "捷運公館站" } ``` 更改「司機是否回復預約訊息」: ``` { "ID": 132, "HasDriverClicked": True } ``` **Response:** No need to response **Notes:** 目前系統只會有上述 Payload Example 的這三種情況。 <br> --- # ChangeLog ### `[1.0]` - 2020/05/25 **Added** - All events: `joinRoom`, `leaveRoom`, `getAllRequests`, `newRequest`, `requestUpdate`