Class SpaceSystem

Inheritance Relationships

Base Type

Class Documentation

class SpaceSystem : public csp::systems::SystemBase

Public facing system that allows interfacing with Magnopus Connected Services’ concept of a Group.

Offers methods for creating, deleting and joining spaces.

Helper Functions

void EnterSpace(const csp::common::String &SpaceId, NullResultCallback Callback)

Enter a space if you have permission to, based on the Space settings.

This includes setting scopes (and toggling event listening in order to set the scope). It also retrieves all entities in the space. Ensure Connect is called prior to this. If user does not have permission to discover or enter the space, callback will be called with EResultCode::Failed and ERequestFailureReason::UserSpaceAccessDenied

Parameters
  • SpaceSpace : space to enter into

  • Callback – EnterSpaceResultCallback : callback when asynchronous task finishes

void ExitSpace(NullResultCallback Callback)

Exits the space and deregisters from the space scope.

bool IsInSpace()

Get whether user is currently in a space.

Returns

Result of whether they are in a Space.

const Space &GetCurrentSpace() const

Get the user’s current space.

Returns

The space data object the user is currently in

Asynchronous Calls

These are methods that perform WebClient calls and therefore operate asynchronously and require a callback to be passed for a completion result

void CreateSpace(const csp::common::String &Name, const csp::common::String &Description, SpaceAttributes Attributes, const csp::common::Optional<InviteUserRoleInfoCollection> &InviteUsers, const csp::common::Map<csp::common::String, csp::common::String> &Metadata, const csp::common::Optional<csp::systems::FileAssetDataSource> &FileThumbnail, const csp::common::Optional<csp::common::Array<csp::common::String>> &Tags, SpaceResultCallback Callback)

Creates a new space.

Parameters
void CreateSpaceWithBuffer(const csp::common::String &Name, const csp::common::String &Description, SpaceAttributes Attributes, const csp::common::Optional<InviteUserRoleInfoCollection> &InviteUsers, const csp::common::Map<csp::common::String, csp::common::String> &Metadata, const csp::systems::BufferAssetDataSource &Thumbnail, const csp::common::Optional<csp::common::Array<csp::common::String>> &Tags, SpaceResultCallback Callback)

Creates a new space Using BufferAssetDataSource.

Parameters
void UpdateSpace(const csp::common::String &SpaceId, const csp::common::Optional<csp::common::String> &Name, const csp::common::Optional<csp::common::String> &Description, const csp::common::Optional<SpaceAttributes> &Type, const csp::common::Optional<csp::common::Array<csp::common::String>> &Tags, BasicSpaceResultCallback Callback)

Updates the name and/or the description of a Space.

Parameters
void DeleteSpace(const csp::common::String &SpaceId, NullResultCallback Callback)

Deletes a given space and the corresponding UserService group.

Parameters
void GetSpaces(SpacesResultCallback Callback)

Retrieves all spaces corresponding to the currently logged in user.

Parameters

CallbackSpacesResultCallback : callback when asynchronous task finishes

void GetSpacesByAttributes(const csp::common::Optional<bool> &IsDiscoverable, const csp::common::Optional<bool> &IsArchived, const csp::common::Optional<bool> &RequiresInvite, const csp::common::Optional<int> &ResultsSkip, const csp::common::Optional<int> &ResultsMax, const csp::common::Optional<csp::common::Array<csp::common::String>> &MustContainTags, const csp::common::Optional<csp::common::Array<csp::common::String>> &MustExcludeTags, const csp::common::Optional<bool> &MustIncludeAllTags, BasicSpacesResultCallback Callback)

Retrieves basic space details for the spaces with the given attributes available to the logged in user.

Results pagination is supported through the use of ResultsSkip and ResultsMax.

Parameters
void GetSpacesByIds(const csp::common::Array<csp::common::String> &RequestedSpaceIDs, SpacesResultCallback Callback)

Retrieves space details corresponding to the provided Space IDs.

Parameters
void GetSpacesForUserId(const csp::common::String &UserId, SpacesResultCallback Callback)

Retrieves all spaces corresponding to the provided user ID.

Parameters
void GetSpace(const csp::common::String &SpaceId, SpaceResultCallback Callback)

Retrieves a space by its unique ID.

Parameters
async::task<SpaceResult> GetSpace(const csp::common::String &SpaceId)
void InviteToSpace(const csp::common::String &SpaceId, const csp::common::String &Email, const csp::common::Optional<bool> &IsModeratorRole, const csp::common::Optional<csp::common::String> &EmailLinkUrl, const csp::common::Optional<csp::common::String> &SignupUrl, NullResultCallback Callback)

Invites a given email to a specific space.

Parameters
void BulkInviteToSpace(const csp::common::String &SpaceId, const InviteUserRoleInfoCollection &InviteUsers, NullResultCallback Callback)

Invites all the given emails to a specific space.

Parameters
void GetPendingUserInvites(const csp::common::String &SpaceId, PendingInvitesResultCallback Callback)

Returns an array of obfuscated email addresses, addresses of users that have not yet accepted the space invite.

Parameters
void GetAcceptedUserInvites(const csp::common::String &SpaceId, AcceptedInvitesResultCallback Callback)

Returns an array of ids of users that accepted the space invite.

Parameters
void RemoveUserFromSpace(const csp::common::String &SpaceId, const csp::common::String &UserId, NullResultCallback Callback)

Removes a user from a space by the user’s unique ID.

Parameters
void AddUserToSpace(const csp::common::String &SpaceId, const csp::common::String &UserId, SpaceResultCallback Callback)

Adds a user to a space by the user’s unique ID.

Parameters
async::task<SpaceResult> AddUserToSpace(const csp::common::String &SpaceId, const csp::common::String &UserId)
void AddSiteInfo(const csp::common::String &SpaceId, Site &SiteInfo, SiteResultCallback Callback)

Creates new Site information and associates it with the Space.

Parameters
void RemoveSiteInfo(const csp::common::String &SpaceId, Site &SiteInfo, NullResultCallback Callback)

Removes the Site information from the Space.

Parameters
void GetSitesInfo(const csp::common::String &SpaceId, SitesCollectionResultCallback Callback)

Retrieves the Sites information associated with a Space.

Parameters
void UpdateUserRole(const csp::common::String &SpaceId, const UserRoleInfo &NewUserRoleInfo, NullResultCallback Callback)

Updates the space role for a particular user.

Parameters
  • SpaceSpace : The space that the requested user is part of

  • NewUserRoleInfoUserRoleInfo : New user role information containing the new role for the specified user

  • CallbackNullResultCallback : callback when asynchronous task finishes

void GetUsersRoles(const csp::common::String &SpaceId, const csp::common::Array<csp::common::String> &RequestedUserIds, UserRoleCollectionCallback Callback)

Retrieves the User role information for the User Ids that have been passed in.

Parameters
void UpdateSpaceMetadata(const csp::common::String &SpaceId, const csp::common::Map<csp::common::String, csp::common::String> &NewMetadata, NullResultCallback Callback)

Updates the Space metadata information with the new one provided.

Parameters
void GetSpacesMetadata(const csp::common::Array<csp::common::String> &Spaces, SpacesMetadataResultCallback Callback)

Retrieves Spaces metadata information.

Parameters
void GetSpaceMetadata(const csp::common::String &SpaceId, SpaceMetadataResultCallback Callback)

Retrieves the Space metadata information.

Parameters
void UpdateSpaceThumbnail(const csp::common::String &SpaceId, const csp::systems::FileAssetDataSource &NewThumbnail, NullResultCallback Callback)

Updates the Space thumbnail image or adds one if it didn’t have it previously using FileAssetDataSource.

Parameters
void UpdateSpaceThumbnailWithBuffer(const csp::common::String &SpaceId, const csp::systems::BufferAssetDataSource &NewThumbnail, NullResultCallback Callback)

Updates the Space thumbnail image or adds one if it didn’t have it previously using BufferAssetDataSource.

Parameters
void GetSpaceThumbnail(const csp::common::String &SpaceId, UriResultCallback Callback)

Retrieves the space thumbnail information associated with the space If the space does not have a thumbnail associated with it the result callback will be successful, the HTTP res code will be ResponseNotFound and the Uri field inside the UriResult will be empty.

Parameters
  • SpaceSpace : Space for which the thumbnail information will be retrieved

  • CallbackUriResultCallback : callback when asynchronous task finishes

void AddUserToSpaceBanList(const csp::common::String &SpaceId, const csp::common::String &RequestedUserId, NullResultCallback Callback)

Adds user to group banned list.

Banned list can be retrieved from the space

Parameters
void DeleteUserFromSpaceBanList(const csp::common::String &SpaceId, const csp::common::String &RequestedUserId, NullResultCallback Callback)

Deletes user from group banned list.

Banned list can be retrieved from the space

Parameters
void UpdateSpaceGeoLocation(const csp::common::String &SpaceId, const csp::common::Optional<GeoLocation> &Location, const csp::common::Optional<float> &Orientation, const csp::common::Optional<csp::common::Array<GeoLocation>> &GeoFence, SpaceGeoLocationResultCallback Callback)

Add or update a GeoLocation for the space.

Parameters
void GetSpaceGeoLocation(const csp::common::String &SpaceId, SpaceGeoLocationResultCallback Callback)

Get the geo location details for the given space id.

Parameters
void DeleteSpaceGeoLocation(const csp::common::String &SpaceId, NullResultCallback Callback)

Delete the geo location information of the space.

Parameters
void DuplicateSpace(const csp::common::String &SpaceId, const csp::common::String &NewName, SpaceAttributes NewAttributes, const csp::common::Optional<csp::common::Array<csp::common::String>> &MemberGroupIds, bool ShallowCopy, SpaceResultCallback Callback)

Duplicate an existing space and assign it to the current user.

Parameters