-
Notifications
You must be signed in to change notification settings - Fork 3
Interface meeting RequestStops
-
Author: @themetalone
-
Reviewer: @GSE-Project/group1 @GSE-Project/group3
-
Review-Status: none yet
During this meeting all 3 groups agreed on interface additions for the next two iterations. Systemfunktion C4 is removed from the requirements as it has no relevance to the use cases. Interfaces to handle stop requests have been designed.
The usage of {} in URLs symolizes passed data. i.e.http://host/data?x={y} would be passed as http://host/data?x=a when the clients y value is equal to a.
-
Citizen requests a custom stop at the server
-
Server answers to the Citizen with the assigned request id
-
Server calculates the responsible bus and notifies the driver
-
Driver accepts or rejects the request
-
Citizen asks for the state of the request at random.
-
When picking up the Citizen the Driver marks the request as complete
/CustomStops
{
"lineId": "number",
"pickUpTime": "number <1>",
"location": "GeoJSONPoint <2>",
"numberOfPersons": "number",
"deviceID": "string <3>",
"info": {
"name": "string",
"address": "string <4>",
"assistance": ["number <5>"]
}
}-
Although a fixed point in time is specified, the
pickUpTimerepresents a time intervall. It’s length has yet to be agreed upon. -
The determination of the location is up to Group 2
-
Should be unique and invariant under application/device restarts
-
Important to the driver
-
The assistance is coded via numbers, e.g: "wheelchair" → 1, "Help with luggage" → 2 and so on. The exact list is to be published on the server github wiki. The list is binding to all groups
/CustomStops?id={request_id}&deviceId={device_id}
{
"id": "number",
"deviceId": "string",
"state": "number <1>"
}-
The state is coded via numbers. The exact list is to be published on the server github wiki. The list is binding to all groups. The current list is contains
pending,accepted,rejected,completed,notshownupand may be subject to changes.
The following interfaces weren’t defined during the meeting but the groups agreed upon that those interfaces need to be specified. Since they always concern only two groups at once the definition of those is up to the concerned groups.
-
Response during Request
POSTCitizen → Server (should containrequest_id) -
Request
GETDriver → Server (should contain most of the already defined request interface) -
RequestState
POSTDriver → Server
-
GETrequest-
Request would be done in an interval. next step would be push notification
-
First Step:
http://CustomStops/{lineId} -
Second Step:
http://CustomStops?lineId={lineId} -
Driver would get a list of customStopObject
-
Every custom stop would have an unique ID
-
-
citizen has asked for a stop
-
driver can see the list of stops and can send a update request for each of them
-
accept →
POSThttp://host/CustomStops/{id}withstatus={accepted} -
reject →
POSThttp://host/CustomStops/{id}withstatus={rejected}
-
-
-
citizen checks the status
-
gets
-
accepted -
rejected
-
-
-
driver picks up the citizen
-
updates the request to
completed
-
-
We agreed upon changes in
/bussesandbusses/{id}-
The
Busobject contains nowtotalSeats -
The
RealTimeBusDataconatins nowtakenSeats -
Changes are already applied to the interface document
-
-
Changes in
/stops-
the
scheduleobjects can now containidproperties
-