@@ -26,6 +26,8 @@ public interface IUserInviteClient
2626
2727    Task < RestApiResponse < UserInvite > >  GetUserInviteAsync ( string  accessToken ,  Guid  userInviteID ) ; 
2828
29+     Task < RestApiResponse < UserInvite > >  GetUserInviteDetailsAsync ( string  accessToken ,  Guid  userInviteID ) ; 
30+ 
2931    Task < RestApiResponse < UserInvite > >  SendInviteAsync ( string  userAccessToken ,  Guid  merchantID , 
3032        string  inviteeEmailAddress , 
3133        string  inviteRegistrationUrl , 
@@ -39,6 +41,8 @@ Task<RestApiResponse<UserInvite>> SendInviteAsync(string userAccessToken, Guid m
3941    Task < RestApiResponse >  ResendUserInviteAsync ( string  accessToken ,  Guid  userInviteID ) ; 
4042
4143    Task < RestApiResponse >  DeleteUserInviteAsync ( string  accessToken ,  Guid  inviteID ) ; 
44+ 
45+     Task < RestApiResponse >  AuthoriseUserInviteAsync ( string  strongUserAccessToken ,  Guid  inviteID ) ; 
4246} 
4347
4448public  class  UserInviteClient  :  IUserInviteClient 
@@ -102,6 +106,25 @@ public Task<RestApiResponse<UserInvite>> GetUserInviteAsync(string accessToken,
102106        } ; 
103107    } 
104108
109+     /// <summary> 
110+     /// Calls the MoneyMoov Merchant get user invite details endpoint to get a single user invite by ID. 
111+     /// </summary> 
112+     /// <param name="accessToken">A User scoped JWT access token.</param> 
113+     /// <param name="userInviteID">The ID of the user invite to retrieve.</param> 
114+     /// <returns>If successful, a user invite object.</returns> 
115+     public  Task < RestApiResponse < UserInvite > >  GetUserInviteDetailsAsync ( string  accessToken ,  Guid  userInviteID ) 
116+     { 
117+         var  url  =  MoneyMoovUrlBuilder . UserInvitesApi . UserInviteDetailsUrl ( _apiClient . GetBaseUri ( ) . ToString ( ) ,  userInviteID ) ; 
118+ 
119+         var  prob  =  _apiClient . CheckAccessToken ( accessToken ,  nameof ( GetUserInviteDetailsAsync ) ) ; 
120+ 
121+         return  prob  switch 
122+         { 
123+             var  p  when  p . IsEmpty  =>  _apiClient . GetAsync < UserInvite > ( url ,  accessToken ) , 
124+             _ =>  Task . FromResult ( new  RestApiResponse < UserInvite > ( HttpStatusCode . PreconditionFailed ,  new  Uri ( url ) ,  prob ) ) 
125+         } ; 
126+     } 
127+ 
105128    /// <summary> 
106129    /// Calls the MoneyMoov account endpoint to create and send an email invite to register 
107130    /// and join a merchant account. 
@@ -192,4 +215,25 @@ public Task<RestApiResponse> DeleteUserInviteAsync(string accessToken, Guid invi
192215            _ =>  Task . FromResult ( new  RestApiResponse ( HttpStatusCode . PreconditionFailed ,  new  Uri ( url ) ,  prob ) ) 
193216        } ; 
194217    } 
218+ 
219+     /// <summary> 
220+     /// Calls the MoneyMoov user invites endpoint to authorise a user invite. 
221+     /// </summary> 
222+     /// <param name="strongUserAccessToken">The strong user access token acquired to authorise the user invite. Strong 
223+     /// tokens can only be acquired from a strong customer authentication flow, are short lived (typically 5 minute expiry) 
224+     /// and are specific to the user invite.</param> 
225+     /// <param name="inviteID">The ID of the user invite to authorise.</param> 
226+     /// <returns>An API response indicating the result of the authorise attempt.</returns> 
227+     public  Task < RestApiResponse >  AuthoriseUserInviteAsync ( string  strongUserAccessToken ,  Guid  inviteID ) 
228+     { 
229+         var  url  =  MoneyMoovUrlBuilder . UserInvitesApi . AuthoriseUserInviteUrl ( _apiClient . GetBaseUri ( ) . ToString ( ) ,  inviteID ) ; 
230+ 
231+         var  prob  =  _apiClient . CheckAccessToken ( strongUserAccessToken ,  nameof ( AuthoriseUserInviteAsync ) ) ; 
232+ 
233+         return  prob  switch 
234+         { 
235+             var  p  when  p . IsEmpty  =>  _apiClient . PostAsync ( url ,  strongUserAccessToken ) , 
236+             _ =>  Task . FromResult ( new  RestApiResponse ( HttpStatusCode . PreconditionFailed ,  new  Uri ( url ) ,  prob ) ) 
237+         } ; 
238+     } 
195239} 
0 commit comments