public CreatedAppFixture() { if (!isCreated) { Task.Run(async() => { try { await Apps.PostAppAsync(new CreateAppDto { Name = AppName }); } catch (SquidexManagementException ex) { if (ex.StatusCode != 400) { throw; } } var invite = new AssignContributorDto { ContributorId = "*****@*****.**", Invite = true, Role = "Owner" }; await Apps.PostContributorAsync(AppName, invite); }).Wait(); isCreated = true; } }
public async Task <IActionResult> PostContributor(string app, [FromBody] AssignContributorDto request) { var command = request.ToCommand(); var response = await InvokeCommandAsync(command); return(CreatedAtAction(nameof(GetContributors), new { app }, response)); }
private async Task AssignContributor(string role = null) { var assignRequest = new AssignContributorDto { ContributorId = contributor, Role = role, Invite = true }; await _.Apps.PostContributorAsync(_.AppName, assignRequest); }
public async Task <IActionResult> PostContributor(string app, [FromBody] AssignContributorDto request) { var command = request.ToCommand(); var context = await CommandBus.PublishAsync(command); var result = context.Result <EntityCreatedResult <string> >(); var response = ContributorAssignedDto.FromId(result.IdOrValue); return(Ok(response)); }
public async Task Should_manage_contributors() { var contributorEmail = "*****@*****.**"; var contributorRole1 = "Developer"; var contributorRole2 = "Owner"; // STEP 0: Do not invite contributors when flag is false. var createRequest = new AssignContributorDto { ContributorId = "*****@*****.**" }; var ex = await Assert.ThrowsAsync <SquidexManagementException>(() => { return(_.Apps.PostContributorAsync(_.AppName, createRequest)); }); Assert.Equal(404, ex.StatusCode); // STEP 1: Assign contributor. var createInviteRequest = new AssignContributorDto { ContributorId = contributorEmail, Invite = true }; var contributors_1 = await _.Apps.PostContributorAsync(_.AppName, createInviteRequest); var contributor_1 = contributors_1.Items.FirstOrDefault(x => x.ContributorName == contributorEmail); // Should return contributor with correct email. Assert.Equal(contributorRole1, contributor_1?.Role); // STEP 2: Update contributor role. var updateRequest = new AssignContributorDto { ContributorId = contributorEmail, Role = contributorRole2 }; var contributors_2 = await _.Apps.PostContributorAsync(_.AppName, updateRequest); var contributor_2 = contributors_2.Items.FirstOrDefault(x => x.ContributorId == contributor_1.ContributorId); // Should return contributor with correct role. Assert.Equal(contributorRole2, contributor_2?.Role); // STEP 3: Remove contributor. var contributors_3 = await _.Apps.DeleteContributorAsync(_.AppName, contributor_2.ContributorId); var contributor_3 = contributors_3.Items.FirstOrDefault(x => x.ContributorId == contributor_1.ContributorId); // Should not return deleted contributor. Assert.Null(contributor_3); }
private async Task <ContributorDto> InviteAsync() { var createInviteRequest = new AssignContributorDto { ContributorId = email, Invite = true }; var contributors = await _.Apps.PostContributorAsync(appName, createInviteRequest); var contributor = contributors.Items.Find(x => x.ContributorName == email); return(contributor); }
private async Task SynchronizeContributorsAsync(AppModel model, ISession session) { foreach (var(email, value) in model.Contributors) { await log.DoSafeAsync($"Contributor '{email}' creating", async() => { var request = new AssignContributorDto { ContributorId = email, Role = value.Role, Invite = true }; await session.Apps.PostContributorAsync(session.App, request); }); } }
public async Task Should_not_invite_contributor_if_flag_is_false() { // STEP 0: Create app. await CreateAppAsync(); // STEP 1: Do not invite contributors when flag is false. var createRequest = new AssignContributorDto { ContributorId = "*****@*****.**" }; var ex = await Assert.ThrowsAsync <SquidexManagementException>(() => { return(_.Apps.PostContributorAsync(appName, createRequest)); }); Assert.Equal(404, ex.StatusCode); }
public async Task <IActionResult> PostContributor(string app, [FromBody] AssignContributorDto request) { var command = request.ToCommand(); var context = await CommandBus.PublishAsync(command); var response = (ContributorAssignedDto)null; if (context.PlainResult is EntityCreatedResult <string> idOrValue) { response = ContributorAssignedDto.FromId(idOrValue.IdOrValue, false); } else if (context.PlainResult is InvitedResult invited) { response = ContributorAssignedDto.FromId(invited.Id.IdOrValue, true); } return(Ok(response)); }
public async Task <IActionResult> PostContributor(string app, [FromBody] AssignContributorDto request) { var command = request.ToCommand(); var context = await CommandBus.PublishAsync(command); var response = (ContributorsDto)null; if (context.PlainResult is IAppEntity newApp) { response = ContributorsDto.FromApp(newApp, appPlansProvider, this, false); } else if (context.PlainResult is InvitedResult invited) { response = ContributorsDto.FromApp(invited.App, appPlansProvider, this, true); } return(CreatedAtAction(nameof(GetContributors), new { app }, response)); }
public async Task Should_update_contributor() { // STEP 0: Create app. await CreateAppAsync(); // STEP 1: Assign contributor. var contributor = await InviteAsync(); // STEP 1: Update contributor role. var updateRequest = new AssignContributorDto { ContributorId = email, Role = "Owner" }; var contributors_2 = await _.Apps.PostContributorAsync(appName, updateRequest); var contributor_2 = contributors_2.Items.Find(x => x.ContributorId == contributor.ContributorId); Assert.Equal(updateRequest.Role, contributor_2?.Role); }