3.2.4. Proximie::PxRestApi reference
-
namespace PxRestApi
The PxRestApi namespace provides support for various common Proximie REST APIs, typically used to work with Proximie services.
The core class in this namespace is
ProximieServices, which is used to make REST requests.Whilst the REST APIs themselves use JSON payloads, PxRestApi support uses typed C++ structures. These payload structures are available in the PxRestApi namespace.
Note that the full REST APIs are extensive, and this namespace implements a smaller subset pertinent to functions typically required by SDK applications.
-
class Facility
- #include <PxRestApi/Organisation.h>
Facility details
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class Facilities
- #include <PxRestApi/Organisation.h>
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class Room
- #include <PxRestApi/Organisation.h>
Room details
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class Rooms
- #include <PxRestApi/Organisation.h>
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class OrganisationWithId
- #include <PxRestApi/Organisation.h>
Organisation details
Public Functions
-
void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string id
Organisation ID.
-
std::string name
Organisation name.
-
std::string type
Organisation type.
-
std::string countryIso
Org country ISO code.
-
bool allowImageOverlay = {false}
Allow image overlay.
-
bool allowPublicVisibility = {false}
Allow public visibility.
-
bool allowRecording = {false}
Allows recording.
-
bool allowQuickReschedule = {false}
Allows quick reschedule.
-
bool allowStartNow = {false}
Allow start before scheduled time.
-
bool allowVideoSharing = {false}
Allows video sharing.
-
bool allowWearables = {false}
Allows wearables.
-
boost::optional<bool> allowAnalytics
Allow analytics.
-
boost::optional<bool> allowSessionCreation
Allow session creation (front-end)
-
void serialize(PxUtility::JsonSerializer &serializer)
-
class Organisations
- #include <PxRestApi/Organisation.h>
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
boost::optional<std::vector<OrganisationWithId>> organisations
List of organisations.
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class Role
- #include <PxRestApi/Organisation.h>
A role in an organisation
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string name
The name of the role in the organisation.
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class OrganisationUserMember : public Proximie::PxRestApi::UserWithId
- #include <PxRestApi/Organisation.h>
User as an organisation member
Public Functions
-
inline virtual void serialize(PxUtility::JsonSerializer &serializer) override
Serialize with JsonSerializer
-
inline virtual void serialize(PxUtility::JsonSerializer &serializer) override
-
class OrganisationMembers
- #include <PxRestApi/Organisation.h>
Organisation members
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::vector<OrganisationUserMember> members
List of members.
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class OrganisationMembership
- #include <PxRestApi/Organisation.h>
Details of an organisation’s membership
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class OrganisationUserMembership : public Proximie::PxRestApi::UserWithId
- #include <PxRestApi/Organisation.h>
User with their membership in an organisation
Public Functions
-
inline virtual void serialize(PxUtility::JsonSerializer &serializer) override
Serialize with JsonSerializer
Public Members
-
boost::optional<std::vector<OrganisationMembership>> organisationMemberships
The organisation memberships.
-
inline virtual void serialize(PxUtility::JsonSerializer &serializer) override
-
class ProximieServices
- #include <PxRestApi/ProximieServices.h>
A helper class to call certain Proximie REST APIs from SDK applications.
See Proximie REST services for details on creating and making ProximieServices objects in your applications.
Construction
To create a
ProximieServicesobject, we need aProximieContextand service settings to use and request fields to apply to each request.
Interface
-
inline RequestFields &requestFields()
Access the fields used for each request. If the caller changes the values, they will be using in subsequent requests
User APIs
-
inline void getThisUser(const FetchHandler<OrganisationUserMembership> &handler) const
Get the details of the current user using a callback handler
-
inline FetchFuture<OrganisationUserMembership> getThisUser() const
Get the details of the current user as a future
-
inline void getSpecialities(const FetchHandler<Taxonomy> &handler) const
Get the specialities for the authorised user using a callback handler
See: https://docs.proximie.net/reference/getsessionspecialitiestaxonomy
-
inline FetchFuture<Taxonomy> getSpecialities() const
Get the specialities for the authorised user as a future
See: https://docs.proximie.net/reference/getsessionspecialitiestaxonomy
Organisation APIs
-
inline void getOrganisations(const FetchHandler<Organisations> &handler) const
Get all organisations that the authorised user is a member of using a callback handler
-
inline FetchFuture<Organisations> getOrganisations() const
Get all organisations that the authorised user is a member of as a future
-
inline void getOrganisationMembers(string_view orgId, const FetchHandler<OrganisationMembers> &handler) const
Get all members for a given organisation using a callback handler
-
inline FetchFuture<OrganisationMembers> getOrganisationMembers(string_view orgId) const
Get all members for a given organisation as a future
-
inline void getFacilities(string_view orgId, const FetchHandler<Facilities> &handler) const
Get an organisation’s facilities using a callback handler
-
inline FetchFuture<Facilities> getFacilities(string_view orgId) const
Get an organisation’s facilities as a future
-
inline void getFacilityRooms(string_view orgId, string_view facilityId, const FetchHandler<Rooms> &handler) const
Get an organisation’s facility’s rooms using a callback handler
-
inline FetchFuture<Rooms> getFacilityRooms(string_view orgId, string_view facilityId) const
Get an organisation’s facility’s rooms as a future
-
inline void getNonRoomNotations(const FetchHandler<Rooms> &handler) const
Get available notations for “non-rooms” using a callback handler
Non-rooms are used when a room is unknown or N/A
See https://docs.proximie.net/reference/getnonroomnotationstaxonomy
-
inline FetchFuture<Rooms> getNonRoomNotations() const
Get available notations for “non-rooms” as a future
Non-rooms are used when a room is unknown or N/A
See https://docs.proximie.net/reference/getnonroomnotationstaxonomy
-
inline void createSession(string_view orgId, const CreateSessionRequest &session, const FetchHandler<CreateSessionResponse> &handler) const
Create a session in an organisation using a callback handler
-
inline FetchFuture<CreateSessionResponse> createSession(string_view orgId, const CreateSessionRequest &session) const
Create a session in an organisation as a future
Session APIs
-
inline void getSurgicalTypes(const FetchHandler<Taxonomy> &handler) const
Get the session surgical types available using a callback handler
See: https://docs.proximie.net/reference/getsurgicaltypestaxonomy
-
inline FetchFuture<Taxonomy> getSurgicalTypes() const
Get the session surgical types available as a future
See: https://docs.proximie.net/reference/getsurgicaltypestaxonomy
-
inline void getSessionAccesses(const FetchHandler<Taxonomy> &handler) const
Get the session access types available using a callback handler
See: https://docs.proximie.net/reference/getsessionaccessestaxonomy
-
inline FetchFuture<Taxonomy> getSessionAccesses() const
Get the session access types available as a future
See: https://docs.proximie.net/reference/getsessionaccessestaxonomy
-
inline void getSession(string_view sessionId, const FetchHandler<GetSessionResponse> &handler) const
Given a session ID, request the details for that session using a callback handler
-
inline FetchFuture<GetSessionResponse> getSession(string_view sessionId) const
Given a session ID, request the details for that session as a future
-
inline void getSessions(const FetchHandler<Sessions> &handler) const
Return all available sessions using a callback handler
-
inline FetchFuture<Sessions> getSessions() const
Return all available sessions as a future
-
inline void deleteSession(const FetchHandler<void> &handler, string_view sessionId) const
Delete a session using a callback handler
-
inline FetchFuture<void> deleteSession(string_view sessionId) const
Delete a session as a future
Stream APIs
-
inline void streamConnectionSettings(string_view streamId, const FetchHandler<SessionConnectionSettings> &handler) const
Given a media stream ID, return the connection settings to access that media session on the remote media server using a callback handler
-
inline FetchFuture<SessionConnectionSettings> streamConnectionSettings(string_view streamId) const
Given a media stream ID, return the connection settings to access that media session on the remote media server as a future
Public Types
-
enum class ApiVer
Proximie APIs are versioned for API updates and releases
Values:
-
enumerator v1
Legacy API.
-
enumerator v2
v2 is the latest API version
-
enumerator v1
-
using HttpFetch = PxUtility::HttpFetch
ProximieServices uses the HTTP fetch utility
-
template<typename T>
using PayloadResult = ProximieServicesDetail::PayloadResult<T> A fetch result, typically with a typed payload value.
-
template<typename T>
using FetchHandler = std::function<void(const PayloadResult<T>&)> The handler function signature for a typed fetch operation.
-
template<typename T>
using FetchFuture = std::future<PayloadResult<T>> The future result of a typed fetch operation.
Public Functions
-
template<>
inline void parseTypedPayload(PayloadResult<void>&, const json_object*) Specialization for void results, which have no payload.
-
struct ServiceSettings
- #include <PxRestApi/ProximieServices.h>
Service settings that are used for all API calls for the object
Public Members
-
std::string host
Service host name, e.g.
"my.proximie.net"
-
PxUtility::NetworkPort_t port = PxUtility::DEFAULT_SSL_PORT
Port to use when making requests By default this is set to the default SSL port for HTTP
-
std::string host
-
class RestErrorDetail
- #include <PxRestApi/RestError.h>
Error details for failed REST API requests
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
uint64_t statusCode = 0
HTTP status code.
-
std::string errorCode
Error code.
-
std::string message
Error message.
-
std::string timestamp
Timestamp of the error.
-
std::string version
Version of the API that returned the error.
-
boost::optional<std::string> correlationId
Correlation ID.
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class RestError
- #include <PxRestApi/RestError.h>
Error details for failed REST API requests
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
RestErrorDetail error
Error details.
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class SessionOwner
- #include <PxRestApi/Session.h>
Defines a session owner and their details
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class SessionType
- #include <PxRestApi/Session.h>
Defines the session type
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class SessionAccess
- #include <PxRestApi/Session.h>
Defines the session access type
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string name
The session access name.
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class SessionParticipant
- #include <PxRestApi/Session.h>
Defines a session’s participant
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class Session
- #include <PxRestApi/Session.h>
A given session appointment details
Public Types
-
using Status = SessionStatus::Enum
Session status alias
Public Functions
-
void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string title
The session name.
-
SessionOwner owner
Session owner object.
-
boost::optional<std::string> scheduledAt
Scheduled date/time (ISO8601)
-
int64_t estimatedDuration = {0}
Duration (in milliseconds)
-
std::string createdAt
When created.
-
std::string updatedAt
When last updated.
-
SessionType type
Session type.
-
SessionAccess access
Session access.
-
boost::optional<std::string> description
Description (optional)
-
boost::optional<std::string> deletedAt
Deletion time (if deleted)
-
boost::optional<std::string> surgicalType
Per surgical type taxonomy
-
boost::optional<std::vector<SessionParticipant>> participants
List of participants.
-
using Status = SessionStatus::Enum
-
class SessionWithUrlAndId
- #include <PxRestApi/Session.h>
Full session details, including appointment, organisation and media session
Public Functions
-
void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
void serialize(PxUtility::JsonSerializer &serializer)
-
class Sessions
- #include <PxRestApi/Session.h>
Payload with a list of sessions
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::vector<SessionWithUrlAndId> sessions
List of sessions.
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class GetSessionResponse
- #include <PxRestApi/Session.h>
Response payload when requesting a session’s details
Public Functions
-
void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
boost::optional<OrganisationWithId> organisation
Organisation.
-
void serialize(PxUtility::JsonSerializer &serializer)
-
class CreateSessionRequest
- #include <PxRestApi/Session.h>
Request parameters for creating a session
Public Functions
-
void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string title
Name of the video session.
-
std::string scheduledAt
Data and time in ISO8601 format.
-
uint64_t estimatedDuration = 0
Duration in milliseconds.
-
std::string speciality
Per the speciality taxonomy.
-
std::string access
Per session access taxonomy.
-
std::string facility
UUID of the facility.
-
std::string room
UUID of the room.
-
boost::optional<std::string> surgicalType
Per surgical type taxonomy.
-
boost::optional<std::string> description
What the session is for.
-
boost::optional<std::string> owner
UUID of the session owner
-
boost::optional<std::vector<SessionParticipant>> participants
List of participants.
-
boost::optional<std::string> status
Session status, see SessionStatus for values.
-
void serialize(PxUtility::JsonSerializer &serializer)
-
class CreateSessionResponse
- #include <PxRestApi/Session.h>
Response to a create session request
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class SessionConnectionServer
- #include <PxRestApi/SessionConnection.h>
Media server connection details
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class IceServerSettings
- #include <PxRestApi/SessionConnection.h>
ICE server settings
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class CallStatsProxies
- #include <PxRestApi/SessionConnection.h>
CallStats proxy details
Public Functions
-
void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string appSettingsUrl
App settings URL.
-
std::string authServiceUrl
Auth service URL.
-
std::string collectorUrl
Collector URL.
-
std::string csioInternalApiUrl
Callstats internal API URL.
-
std::string restEventUrl
REST event URL.
-
std::string restStatsUrl
REST stats URL.
-
std::string wsUrl
WebSocket URL.
-
void serialize(PxUtility::JsonSerializer &serializer)
-
class DcpBroker
- #include <PxRestApi/SessionConnection.h>
Proximie DCP broker details
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class SessionConnectionSettings
- #include <PxRestApi/SessionConnection.h>
Details for a media session’s session, services and connection parameters
Public Functions
-
void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string startedAt
Start time.
-
std::string username
User name.
-
std::string credential
Credential details.
-
SessionConnectionServer audioServer
Audio media server connection.
-
SessionConnectionServer videoServer
Video media server connection.
-
std::vector<IceServerSettings> iceServers
ICE servers to use.
-
std::string newRelicLogUrl
NewRelic logging URL.
-
void serialize(PxUtility::JsonSerializer &serializer)
-
class SessionStatus
- #include <PxRestApi/SessionStatus.h>
Helper class for session status strings.
Public Types
-
enum class Enum
Session status enumeration
Values:
-
enumerator SCHEDULED
Media session has been scheduled, but is not ready yet.
-
enumerator LAUNCHING
Media session is starting.
-
enumerator ACTIVE
Media session is available to join.
-
enumerator CLOSING
Media session is shutting down, joining is disallowed.
-
enumerator CLOSED
Media session has fully closed.
-
enumerator SCHEDULED
-
enum class Enum
-
class Stream
- #include <PxRestApi/Stream.h>
A media session stream’s details
Public Types
-
using Status = SessionStatus::Enum
Stream status alias
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
using Status = SessionStatus::Enum
-
class Taxonomy
- #include <PxRestApi/Taxonomy.h>
Taxonomy details.
Public Functions
-
inline void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
-
inline void serialize(PxUtility::JsonSerializer &serializer)
-
class UserWithId
- #include <PxRestApi/User.h>
User details
Subclassed by Proximie::PxRestApi::OrganisationUserMember, Proximie::PxRestApi::OrganisationUserMembership
Public Functions
-
virtual void serialize(PxUtility::JsonSerializer &serializer)
Serialize with JsonSerializer
Public Members
-
std::string id
User UD.
-
std::string email
User’s email.
-
bool hasAcceptedTerms = {false}
If the terms have been accepted.
-
boost::optional<std::string> name
Full name of the user.
-
boost::optional<std::string> phone
User’s phone.
-
boost::optional<std::string> userTitle
User’s title.
-
boost::optional<std::string> speciality
User’s speciality.
-
boost::optional<std::string> countryIso
User’s Country (ISO 3166)
-
boost::optional<std::string> city
City of the user.
-
virtual void serialize(PxUtility::JsonSerializer &serializer)
-
namespace ProximieServicesDetail
-
struct FetchResultBase
- #include <PxRestApi/ProximieServices.h>
A base fetch result with no payload defined.
Subclassed by Proximie::PxRestApi::ProximieServicesDetail::PayloadResult< T >, Proximie::PxRestApi::ProximieServicesDetail::PayloadResult< void >
Public Functions
-
FetchResultBase() = default
Default constructor for base fetch results.
-
inline explicit FetchResultBase(const PxUtility::HttpFetch::FetchResult &result)
Construct a base fetch result from a general fetch result.
-
std::string errorSummary() const
Obtain an error summary string for a response If there is no error, returns an empty string
Public Members
-
error_code error
Error code for the fetch process.
-
std::shared_ptr<PxUtility::HttpFetch::FetchResponse> response
Underlying response details.
May be null in case of extreme fetch errors
-
FetchResultBase() = default
-
template<typename T>
struct PayloadResult : public Proximie::PxRestApi::ProximieServicesDetail::FetchResultBase - #include <PxRestApi/ProximieServices.h>
A fetch result with a typed payload.
Public Functions
-
FetchResultBase() = default
Default constructor for base fetch results.
-
inline explicit FetchResultBase(const PxUtility::HttpFetch::FetchResult &result)
Construct a base fetch result from a general fetch result.
-
FetchResultBase() = default
-
template<>
struct PayloadResult<void> : public Proximie::PxRestApi::ProximieServicesDetail::FetchResultBase Public Functions
-
FetchResultBase() = default
Default constructor for base fetch results.
-
inline explicit FetchResultBase(const PxUtility::HttpFetch::FetchResult &result)
Construct a base fetch result from a general fetch result.
-
FetchResultBase() = default
-
struct FetchResultBase
-
class Facility