private async Task RunInvite() { base.CheckForValue(this._userEmail.Value, this._app, "A user email is required for this command"); base.CheckForValue(this._enterpriseId.Value, this._app, "An enterprise id is required for this command"); var boxClient = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value()); BoxUserInviteRequest userInviteRequest = new BoxUserInviteRequest() { Enterprise = new BoxRequestEntity() { Id = this._enterpriseId.Value }, ActionableBy = new BoxActionableByRequest() { Login = this._userEmail.Value } }; var userInvite = await boxClient.UsersManager.InviteUserToEnterpriseAsync(userInviteRequest); if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting()) { base.OutputJson(userInvite); return; } if (userInvite.InvitedTo.Id == this._enterpriseId.Value) { Reporter.WriteSuccess($"Invited user {this._userEmail.Value}"); } else { Reporter.WriteError($"Couldn't invite user {this._userEmail.Value}"); } }
public async Task InviteUser_ValidResponse_ValidUser() { /*** Arrange ***/ string responseString = "{ \"type\":\"invite\",\"id\":\"238632\",\"invited_to\":{ \"type\":\"enterprise\",\"id\":\"42500\",\"name\":\"Blosser Account\"},\"actionable_by\":{ \"type\":\"user\",\"id\":\"229667663\",\"name\":\"Lleyton Hewitt\",\"login\":\"[email protected]\"},\"invited_by\":{ \"type\":\"user\",\"id\":\"10523870\",\"name\":\"Ted Blosser\",\"login\":\"[email protected]\"},\"status\":\"pending\",\"created_at\":\"2014-12-23T12:55:53-08:00\",\"modified_at\":\"2014-12-23T12:55:53-08:00\"}"; _handler.Setup(h => h.ExecuteAsync <BoxUserInvite>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxUserInvite> >(new BoxResponse <BoxUserInvite>() { Status = ResponseStatus.Success, ContentString = responseString })); /*** Act ***/ BoxUserInviteRequest userInviteRequest = new BoxUserInviteRequest() { Enterprise = new BoxRequestEntity() { Id = "42500" }, ActionableBy = new BoxActionableByRequest() { Login = "******" } }; BoxUserInvite userInvite = await _usersManager.InviteUserToEnterpriseAsync(userInviteRequest); /*** Assert ***/ Assert.AreEqual("*****@*****.**", userInvite.ActionableBy.Login); }
/// <summary> /// Invites an existing user to join an Enterprise. The existing user cannot be part of another Enterprise and must already have a Box account. /// </summary> /// <returns></returns> /// public async Task <BoxUserInvite> InviteUserToEnterpriseAsync(BoxUserInviteRequest userInviteRequest, List <string> fields = null) { BoxRequest request = new BoxRequest(_config.InviteEndpointUri) .Param(ParamFields, fields) .Payload(_converter.Serialize(userInviteRequest)) .Method(RequestMethod.Post); IBoxResponse <BoxUserInvite> response = await ToResponseAsync <BoxUserInvite>(request).ConfigureAwait(false); return(response.ResponseObject); }
/// <summary> /// Invites an existing user to join an Enterprise. The existing user cannot be part of another Enterprise and must already have a Box account. /// Once invited, the user will receive an email and prompt to accept the invitation within the Box web application. /// This method requires the "Manage An Enterprise" scope for the enterprise, which can be enabled within your developer console. /// </summary> /// <param name="userInviteRequest">BoxUserInviteRequest object.</param> /// <param name="fields">Attribute(s) to include in the response.</param> /// <returns>A new invite object will be returned if successful.</returns> public async Task <BoxUserInvite> InviteUserToEnterpriseAsync(BoxUserInviteRequest userInviteRequest, IEnumerable <string> fields = null) { userInviteRequest.ThrowIfNull("userInviteRequest") .Enterprise.ThrowIfNull("Enterprise").Id.ThrowIfNullOrWhiteSpace("userInviteRequest.Enterprise.Id"); userInviteRequest.ActionableBy.ThrowIfNull("userInviteRequest.ActionableBy") .Login.ThrowIfNullOrWhiteSpace("userInviteRequest.ActionableBy.Login"); BoxRequest request = new BoxRequest(_config.InviteEndpointUri) .Param(ParamFields, fields) .Payload(_converter.Serialize(userInviteRequest)) .Method(RequestMethod.Post); IBoxResponse <BoxUserInvite> response = await ToResponseAsync <BoxUserInvite>(request).ConfigureAwait(false); return(response.ResponseObject); }
public async Task InviteUser_ValidResponse_ValidUser() { /*** Arrange ***/ string responseString = "{ \"type\":\"invite\",\"id\":\"238632\",\"invited_to\":{ \"type\":\"enterprise\",\"id\":\"42500\",\"name\":\"Blosser Account\"},\"actionable_by\":{ \"type\":\"user\",\"id\":\"229667663\",\"name\":\"Lleyton Hewitt\",\"login\":\"[email protected]\"},\"invited_by\":{ \"type\":\"user\",\"id\":\"10523870\",\"name\":\"Ted Blosser\",\"login\":\"[email protected]\"},\"status\":\"pending\",\"created_at\":\"2014-12-23T12:55:53-08:00\",\"modified_at\":\"2014-12-23T12:55:53-08:00\"}"; IBoxRequest boxRequest = null; Handler.Setup(h => h.ExecuteAsync <BoxUserInvite>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxUserInvite> >(new BoxResponse <BoxUserInvite>() { Status = ResponseStatus.Success, ContentString = responseString })) .Callback <IBoxRequest>(r => boxRequest = r); /*** Act ***/ BoxUserInviteRequest userInviteRequest = new BoxUserInviteRequest() { Enterprise = new BoxRequestEntity() { Id = "42500" }, ActionableBy = new BoxActionableByRequest() { Login = "******" } }; BoxUserInvite userInvite = await _usersManager.InviteUserToEnterpriseAsync(userInviteRequest); /*** Assert ***/ // Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Post, boxRequest.Method); Assert.AreEqual(InviteUri, boxRequest.AbsoluteUri.AbsoluteUri); BoxUserInviteRequest payload = JsonConvert.DeserializeObject <BoxUserInviteRequest>(boxRequest.Payload); Assert.AreEqual(userInviteRequest.Enterprise.Id, payload.Enterprise.Id); Assert.AreEqual(userInviteRequest.ActionableBy.Login, payload.ActionableBy.Login); //Response check Assert.AreEqual("238632", userInvite.Id); Assert.AreEqual("*****@*****.**", userInvite.ActionableBy.Login); }