To send the invitation based on VEHICLE you need to provide vehicleIds field instead of fromAccountIds and to call sendVehicleInvitation.
let invitationService =InvitationService(identity: identity)invitationService.sendVehicleInvitation(fromUserID: fromUserID, toUserFirstName: toUserFirstName, toUserLastName: toUserLastName, toUserEmail: toUserEmail, toUserPhoneNumber: toUserPhoneNumber, vehicleIDs: vehicleIDs, then: { result inswitch result {case .success(_):// invitation successfulcase .failure// error }})
val service =InvitationService(identity)service.sendVehicleInvitation(fromUserId, vehicleIds, toUserFirstName, toUserLastName, toUserPhoneNumber, toUserEmail){ result ->if (result?.value==null|| result.throwable !=null) {// failure } else {// Successval response = result.valuecompletionHandler(content) }}
Remove secondary user from FAMILY ACCOUNT.
Required information
*Identity: In order to remove guest driver from account, the application must have a valid user (represented by the Identity). That user must be active.
Concrete example
Removing secondary user based on account
To remove secondary guest driver from the account, one can use following snippet.
let service =InvitationService(identity: identity)service.removeGuestDriverFromAccount(toUserId: userID, accountId: accountID, then: { result inswitch result {case .success(_):// successfully removedcase .failure// error }})
val service =InvitationService(identity)service.removeDriverFromAccount(userId, accountId) { result ->if (result?.value==null|| result.throwable !=null) {// failure } else {// Successval response = result.valuecompletionHandler(content) }}
Removing secondary user based on vehicle
To remove secondary guest driver from vehicle, one can use following snippet.
let service =InvitationService(identity: identity)service.removeGuestDriverFromVehicle(toUserId: userID, vehicleId: vehicle, then: { result inswitch result {case .success(_):// successfully removedcase .failure// error }})
val service =InvitationService(identity)service.removeDriverFromVehicle(userId, vehicleId){ result ->if (result?.value==null|| result.throwable !=null) {// failure } else {// Successval response = result.valuecompletionHandler(content) }}
Retrieve Pending Invitations
The host application can retrieve pending invitations. The list contains all invitations that the user has sent or received, so apps should check the primaryDriver and secondaryDriver ID's to see if the current user sent (primary) or received (secondary) each one.
Required information
Identity: In order to retrieve the invitations, the application must have a valid user (represented by the Identity). That user has to be active.
Concrete example
To retrieve the account invitations, one can use the following snippet
let service =InvitationService(identity: identity)service.fetchAccountInvites(then: { result inguard!result.value?.isEmptyelse {// failurereturn } completionHandler(.success(result.value))})
val service =InvitationService(identity)service.fetchInvitations(userId) { result: Result<InvitationResponse?>? ->if (result?.value==null|| result.throwable !=null) {// failure } else {// Successval response = result.valuecompletionHandler(content) }})
To retrieve vehicle invites, one can use following snippet.
let service =InvitationService(identity: identity)service.fetchVehicleInvites(then: { result inguard!result.value?.isEmptyelse {// failurereturn } completionHandler(.success(result.value))})
val service =InvitationService(identity)service.fetchVehicleInvitations(userId) { result: Result<InvitationResponse?>? ->if (result?.value==null|| result.throwable !=null) {// failure } else {// Successval response = result.valuecompletionHandler(content) }})
Respond to Pending Invitation
The host application can accept or decline pending invitations.
Required information
Identity: In order to accept or decline invitations, the application must have a valid user (represented by the Identity). That user has to be active.
Concrete example
To accept or decline an invitation, one can use the following snippet
let service =InvitationService(identity: identity)service.respondToInvitation(toUserId: toUserId, invitationId: invitationId, response: response, then: { result inswitch resultcase .success(_):// response successfulcase .failure(_):// error})
val service =InvitationService(identity)service.respondInvitation(invitation, Invitation.Response.ACCEPT) { result: Result<Any> ->if (result.throwable !=null) {// failure } else {// Success }})
Cancel Pending Invitation
The host application can cancel pending invitations.
Required information
Identity: In order to cancel invitations, the application must have a valid user (represented by the Identity). That user has to be active.
UserId: Only the user who sent the invitation can cancel it.
Concrete example
To cancel to an invitation, one can use the following snippet
let service =InvitationService(identity: identity)service.cancelVehicleInvitation(fromUserId: fromUserId, invitationId: invitationId, then: { result inswitch resultcase .success(_):// cancel successfulcase .failure(_):// error})
val service =InvitationService(identity)service.cancelInvitation(invitation) { result: Result<Any> ->if (result.throwable !=null) {// failure } else {// Success }})