Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

377 Added a new endpoint regarding the right-to-forget #457

Open
wants to merge 6 commits into
base: elephant
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion TOMP-API.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,40 @@ paths:
"410":
$ref: "#/components/responses/410Gone"

/bookings/{id}/forget:
parameters:
- $ref: "#/components/parameters/acceptLanguage"
- $ref: "#/components/parameters/api"
- $ref: "#/components/parameters/apiVersion"
- $ref: "#/components/parameters/maasId"
- $ref: "#/components/parameters/addressedTo"
- name: id
in: path
description: Booking identifier
required: true
schema:
type: string
post:
description: Optional - implement the GDPR's request of right-to-forget. The MP requests the TO to
remove (references to) personal information, obtained for this specific booking. Whenever fixed personal
identifiers are used (not preferable), the other bookings for these traveler(s) should be depersonalized as well.
tags:
- booking [optional]
- TO
responses:
"204":
$ref: "#/components/responses/204NoContent"
"400":
$ref: "#/components/responses/400BadRequest"
"401":
$ref: "#/components/responses/401Unauthorized"
"403":
$ref: "#/components/responses/403Forbidden"
"404":
$ref: "#/components/responses/404NotFound"
"410":
$ref: "#/components/responses/410Gone"

/bookings/{id}/subscription:
parameters:
- $ref: "#/components/parameters/acceptLanguage"
Expand Down Expand Up @@ -2730,7 +2764,7 @@ components:
type: array
items:
type: string
assetType:
assetType:
description: The asset type used in this leg as determined during booking
$ref: "#/components/schemas/assetType"
legSequenceNumber:
Expand Down
16 changes: 16 additions & 0 deletions plantuml/objectmodel/asset.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
@startuml
skinparam package {
BorderStyle dotted
}

frame "Asset" {
Asset }-up- AssetType
}

package "Travel right" {
Asset .right.> Leg
AssetType ..> Leg
Leg -up-> Booking
}

@enduml
109 changes: 109 additions & 0 deletions plantuml/objectmodel/assetType.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
@startuml generated
class Asset {
+String id
Boolean isReserved
String isReservedFrom
String isReservedTo
Boolean isDisabled
String rentalUrl
String rentalUrlAndroid
String rentalUrlIOS
Number mileage
String licensePlate
}
Asset -- "1..1" AssetProperties : overriddenProperties >
class AssetProperties {
String name
Place location
String fuel
String energyLabel
Number co2PerKm
String brand
String model
Integer buildingYear
Boolean travelAbroad
Boolean airConditioning
Boolean cabrio
String colour
String cargo
String easyAccessibility
Integer gears
String gearbox
String image
Boolean infantSeat
Integer persons
Boolean pets
String propulsion
Boolean smoking
Integer stateOfCharge
Boolean towingHook
Boolean undergroundParking
Boolean winterTires
Integer maxSpeed
Boolean helmetRequired
String other
Integer nrOfDoors
Object meta
AssetAccessMethods[] accessMethods
}
note right of AssetProperties::fuel
NONE
GASOLINE
DIESEL
ELECTRIC
HYBRID_GASOLINE
HYBRID_DIESEL
HYBRID_GAS
HYDROGEN
GAS
BIO_MASS
KEROSINE
OTHER
end note
note right of AssetProperties::energyLabel
A B C D E
end note
note right of AssetProperties::easyAccessibility
LIFT
ESCALATOR
GROUND_LEVEL
SIGHTIMPAIRMENT
HEARINGIMPAIRMENT
WHEELCHAIR
end note
note right of AssetProperties::gearbox
MANUAL
AUTOMATIC
SEMIAUTOMATIC
end note
note right of AssetProperties::propulsion
MUSCLE
ELECTRIC
GASOLINE
DIESEL
HYBRID
LPG
HYDROGEN
end note
AssetProperties -left-{ Requirement : ancillaries >
class Requirement {
String source
+String category
+String number
String type
String memo
Integer variable-number
String applicable-days
}
class AssetType {
+String id
String stationId
Integer nrAvailable
AssetClass assetClass
String assetSubClass
Condition[] conditions
SystemPricingPlan[] applicablePricings
}
AssetType -{ Asset : assets >
AssetType -- "0..1" AssetProperties : sharedProperties >
@enduml
43 changes: 43 additions & 0 deletions plantuml/objectmodel/booking.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
@startuml
class Booking <<bookingRequest>> {
BookingState state
Leg[] legs
String departureTime
String arrivalTime
AssetType mainAssetType
Object extraData
Integer safeWaitTime
Integer maxWaitTime
Integer safeTravelTime
Integer maxTravelTime
}
Booking -- "0..1" Fare : pricing >
class Fare {
+Boolean estimated
String description
String class
}
Fare -{ FarePart : parts >
class FarePart {
String type
String kind
String unitType
Number units
Number scaleFrom
Number scaleTo
String scaleType
String name
String class
Number minimumAmount
Number maximumAmount
Object meta
}
FarePart -up-|> AmountOfMoney
class AmountOfMoney {
Number amount
Number amountExVat
String currencyCode
Number vatRate
Country vatCountryCode
}
@enduml
6 changes: 6 additions & 0 deletions plantuml/objectmodel/bookingOperation.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@startuml g
class BookingOperation {
+String operation
String origin
}
@enduml
34 changes: 34 additions & 0 deletions plantuml/objectmodel/bookingRequest.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@startuml
class BookingRequest {
String id
String callbackUrl
}
BookingRequest -- "0..1" Place : from >
BookingRequest -- "0..1" Place : to >
BookingRequest -- "0..1" Customer : customer >
class Place {
String name
StopReference[] stopReference
String stationId
+Coordinates coordinates
Address physicalAddress
Object extraInfo
}
class Customer <<traveler>> {
+String id
String travelerReference
String initials
String firstName
String lastName
String middleName
String prefix
String postfix
Phone[] phones
String email
String birthDate
Address address
String photo
Card[] cards
License[] licenses
}
@enduml
43 changes: 43 additions & 0 deletions plantuml/objectmodel/condition.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
@startuml generated
class Condition {
+String conditionType
String id
}
class ConditionDeposit {
}
ConditionDeposit -up-|> Condition
class ConditionPayWhenFinished {
}
ConditionPayWhenFinished -up-|> Condition
class ConditionPostponedCommit {
+String ultimateResponseTime
}
ConditionPostponedCommit -up-|> Condition
class ConditionRequireBookingData {
+String requiredFields
String claims
}
ConditionRequireBookingData -up-|> Condition
class ConditionReturnArea {
String stationId
Coordinates coordinates
}
ConditionReturnArea -up-|> Condition
ConditionReturnArea -- "0..1" GeojsonPolygon : returnArea >
ConditionReturnArea -down-{ SystemHours : returnHours >
class GeojsonPolygon {
}
class SystemHours {
String userType
String stationId
String regionId
+String startTime
+String endTime
}
SystemHours -down-{ Day : days >
enum Day {
}
class ConditionUpfrontPayment {
}
ConditionUpfrontPayment -up-|> Condition
@enduml
67 changes: 67 additions & 0 deletions plantuml/objectmodel/customer.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
@startuml generated
class Customer {
+String id
String travelerReference
String initials
String firstName
String lastName
String middleName
String prefix
String postfix
Phone[] phones
String email
String birthDate
Address address
String photo
}
Customer -up-|> Traveler
Customer -{ Card : cards >
Customer -left-{ License : licenses >
class Traveler {
Boolean isValidated
Integer age
String referenceNumber
String knownIdentifier
String knownIdentifierProvider
}
Traveler -{ CardType : cardTypes >
Traveler -left-{ LicenseType : licenseTypes >
Traveler -up- "0..1" Requirements : requirements >
class CardType {
+String type
String subType
AssetClass assetClass
String acceptors
}
class LicenseType {
+AssetClass assetClass
Country issuingCountry
}
class Requirements {
}
Requirements -{ Requirement : abilities >
Requirements -{ Requirement : bringAlong >
class Requirement {
String source
+String category
+String number
String type
String memo
Integer variable-number
String applicable-days
}
class Card {
String cardDescription
+String cardNumber
String cardAdditionalNumber
+String validUntil
Country country
}
Card -up-|> CardType
class License {
String number
String licenseCode
String validUntil
}
License -up-|> LicenseType
@enduml
Loading