⚠️ Draft. This content is being updated.
What's new
- Created new endpoints to support new features and adjusted the existing ones:
- Visitor Type:
- Support of the new field in POST/PUT/PATCH for visits and bookings
- GET /v2/{nodeid}/visitor-types
- POST /v2/{nodeid}/visitor-types
- GET /v2/{nodeid}/visitor-types/{id}
- DELETE /v2/{nodeid}/visitor-types/{id}
- PUT /v2/{nodeid}/visitor-types/{id}
- Equipment:
- PUT /v2/{nodeid}/equipment
- PATCH /v2/{nodeid}/Equipment/{equipid}/enable
- PATCH /v2/{nodeid}/Equipment/{equipid}/disable
- DELETE /v2/{nodeid}/Equipment/{equipid}
- GET /v2/{nodeid}/Equipment
- POST /v2/{nodeid}/Equipment
- GET /v2/{nodeid}/Equipment/{equipid}
- Updated the APIs & DataModel to map equipment stores to spaces and equipment
- GET/POST/DELETE /v2/{nodeid}/EquipmentStore/{storeid}/space
- GET/POST/DELETE /v2/{nodeid}/EquipmentStore
- Assigning equipment raises move tasks
- Shortcuts and Quicklinks
- PATCH v2/shortcuts/{nodeid}/enable
- PATCH v2/shortcuts/{nodeid}/disable
- PUT /v2/{nodeid}/Shortcuts/{id}
- Modified POST endpoint /v2/{nodeid}/Shortcuts to include new fields
- Modify GET /v2/{nodeid}/Shortcuts/{id} to include new fields
- Deprecated V1 BuildingKPIs endpoints
- V2 Booking Parties:
- PATCH /v2/{nodeid}/bookingparties/{recordid}
- DELETE /v2/{nodeid}/bookingparties/{recordid}
- POST /v2/{nodeid}/bookingparties/import
- POST /v2/{nodeid}/bookingparties/download
- PATCH /v2/{nodeid}/bookingparties/delete
- V2 visits updates:
- POST v2/{nodeid}/visits/import
- GET v2/{nodeid}/visits/download
- Removed usage and security references to DATAMODEL.VISITORS for only VISITS to be used
- Ticketed Events:
- GET /v2/{nodeid}/ticketedevents
- POST /v2/{nodeid}/ticketedevents
- GET /v2/{nodeid}/ticketedevents/{eventId}
- DELETE /v2/{nodeid}/ticketedevents/{eventId}
- PUT /v2/{nodeid}/ticketedevents/{eventId}
- PATCH /v2/{nodeid}/ticketedevents/cancel
- Changes in the GET /v2/{nodeid}/booking endpoint to include IsParticipant_On_WaitingList flag for each attendee and the TicketedEventId on the booking
- Bookings to include TicketedEventId
- Bulk upload of participants
- User notifications and reminders
- Announcements:
- GET /v2/{nodeid}/announcements/GetActiveNotifications
- PUT /v2/{nodeid}/announcements/{id}
- DELETE /v2/{nodeid}/announcements/{id}
- POST /v2/{nodeid}/announcements
- GET/v2/{nodeid}/announcements
- GET/v2/{nodeid}/announcements/{id}
- User notifications:
- GET /v2/{nodeid}/user-notifications
- GET /v2/{nodeid}/user-notifications/{id}
- PATCH /v2/{nodeid}/user-notifications/{id}
- Visitor Type:
- Task v2 controller for upcoming functionality with 3rd party systems
- Added a new field Meta_Serv_Reqs_Event for Spaces
- Implemented further privacy rules to comply with GDPR requirements to conceal personal data in the following endpoints:
- GET /v2/{nodeid}/bookingparties
- GET /v2/{nodeid}/bookingparties/{recordid}
- GET /v2/{nodeid}/bookings/historical
- GET /v2/{nodeid}/bookings/my-bookings
- GET /v2/{nodeid}/bookings/my-primaries-bookings
- GET /v2/{nodeid}/bookings/booking-series/{seriesid}
- GET /v2/{nodeid}/bookings
- GET /v2/{nodeid}/bookings/{bookingid}
- GET /v2/{nodeid}/bookings/download
- GET /v2/{nodeid}/spaces/{id}/bookings-on-this-day
- Added the following permissions to the list:
- API.Visits.Import
- UserNotifications
- ONELENS360.VisitorAnalytics.Overview
- ONELENS360.OperationalServices.VisitorPass
- API.Equipment.V2
- VisitorType
- Ticketed events:
- API.TicketedEvents.Enable with APPLIESTO
- API.TicketedEvents.Disable with APPLIESTO
- FLEX.Events.View
- ONELENS.OperationalServices.Events with APPLIESTO
What's changed
- Updated RFC error responses for the remaining missing scenarios.
- Extended Visitor Apple Wallet pass to also work with the Visit_Pacs_Id field.
- Updated task notification mechanism for notifications to be generated in IBSS API.
- Added caching mechanism for IBSS API.
- Space configuration file can include up to 100 new spaces.
- Optimised API data base calls of building and user notifications.
- Set a default language for the cases when the language field is not provided in the header.
- Cancelling bookings for others in a 3rd party system provides the user details in the call to the microservice.
- We’ve optimised updating User Preferences for the scenarios when there are multiple buildings in the organisation.
- Added a parameter to enable automatic approvals of catering orders in an organisation.
- Made updates to API to allow creating System Filters for catering orders.
- Attempting to change the node ID of a catering order will now return a 400 bad request error.
- Updated following permissions:
- ADMINPORTAL.Manage.CostCodes
- ADMINPORTAL.Manage.BookingPolicies
What's fixed
Bookings
- A booking on behalf of the user who has an apostrophe in their email address can be now created without an issue and the Booking Party Owner record is created with the correct Booking Party name now.
- POST v2/{nodeid}/bookingparties now updates the Booking_Party_Count field correctly.
- For the updated booking that was made on behalf of someone else with setup and reset slots around it, booking owner is correctly updated too as well as the Floor Manager is assigned to the setup and reset slots in the record.
- When changing the floor or a building for a booking, new space validations happen properly before the previous booking is cancelled and the update is confirmed.
- The Booking_IsApproved field is now properly saved in booking parties when bookings are made or amended.
- Linked space bookings:
- When creating a linked space booking, all space names are set against all booking parties.
- Delegates can book linked spaces for their primaries, and the BookingOnBehalfOf permission is not required.
- Space search returns spaces according to all defined search criteria. In the scenario of searching for a space with a layout option, linked spaces are returned too as they have layout options as well.
- Linked space bookings are successfully created if the current user or the OnBehalfOf user have the necessary permission, and the Floor Manager is set.
- When using the POST /v2/{nodeid}/bookings endpoint to create a booking, the Booking_Owner field is removed as it returns a null value.
- Bookings controller is using the OnBehalfOf user's permissions instead of the permissions of the current user.
- Fixed consistency of populating Booking_Owner_Name in the booking records.
- When using Use GET /v2/{nodeid}/bookingparties and the user has the preference to not sharing their booking data, Booking_Participant_Email & Booking_Participant_Name is not masked for this current user, their delegates, and for the user with elevated permissions. Booking_Participant_Email & Booking_Participant_Name is then masked for everyone else.
- When creating single and series of bookings, passing the correct Booking_AutoCheckIn value will correctly enable the booking for AutoCheckIn.
- Updating a space booking with the space of the same type on a different floor or in another building is successful and doesn’t clash with the original booking.
- If the final booking in a series fails, the other bookings are created and so are their booking parties as expected.
- Email is now validated on import of booking parties by booking ID.
Catering
- Node ID validation is made on CateringMenu API calls.
- When trying to delete a CateringMenuItem and entering an invalid Node ID, the catering menu item is not deleted.
- When trying to delete a CaterinOrderPolicy and entering an invalid Node ID, the space is not deleted.
- When using the Use PATCH /v2/{nodeid}/catering-orders/{orderid} to update the catering order record, the ModifiedBy Field is updated to email of the user that is currently updating the record.
- When amending a booking with the cancelled catering order, the catering order remains in the Cancelled state.
Visits
- GET /v2/{nodeid}/visits endpoint with filter Visit_Host_Email is case sensitive now.
- Visitor name is properly trimmed if only one name is indicated.
- When a visitor is being created or updated (POST/PUT/PATCH/Import), the email provided as the Visit_Host_Email is checked if it’s a valid user in the system.
- If there's a white space in the Building Occupier field in the Node record, the Google Wallet Pass now generates correctly.
- When a booking is updated to a booking on behalf of a visitor, the visitor record is now correctly created.
- Updating a booking that has a visitor included, updates the visitor record accordingly.
- When cancelling a booking with more than 50 visitors included, all visitors are cancelled too.
- When creating a Booking with 2 visitors with the same email, the API now only makes 1 booking party record for that email, as well as 1 visit record. As a result, there are 2 party records including the owner and the 1 visit record for the visitor of the booking.
Spaces and Buildings
- Reason for excluded dates in the booking policy is now saved in the JSON fragment.
- When trying to delete a SpacesConfig and entering an invalid Node ID, the space is not deleted.
- Enabling or disabling buildings via the API updates the SQL database and the nodes table as expected.
- When importing Spaces configuration, the following fields are populated correctly now: Space_Status, Space_Status_Text, Space_IsAvailable.
- When importing Spaces configuration, the existing records are updated correctly.
Cost Codes
- Invalid cost codes are ignored during AAD sync in favour of the valid ones and the allocation is assigned only to the valid cost codes.
- A series of recurring bookings has correctly allocated OnBehalfOf cost codes.
- During booking on behalf of another user and when selecting to use their default cost codes, those cost codes are correctly assigned.
Misc.
- Private_key and Private_key_id are removed from the appsettings.json file.
- Task Category name cannot be updated using API.
- Export request are now being received via email.
- Creating a filter via API requires the Building_Bypass mandatory field to be filled.
- Deleting a filter via API fails if a wrong Node ID indicated.
- Adjusted RFC error responses where applicable.
- Adjusted the GET /v2/roles endpoint to use proper fields and return all available roles:
- Native groups for native users.
- Native groups and groups within the AAD that the user belongs to for AAD users.