Skip to content

Commit

Permalink
feat(Invite): added company and application in invite api response (#963
Browse files Browse the repository at this point in the history
)

Reviewed-By: Phil Schneider <info@philschneider.de>
  • Loading branch information
dhiren-singh-007 authored Sep 2, 2024
1 parent 3b444b2 commit 784866b
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace Org.Eclipse.TractusX.Portal.Backend.Administration.Service.BusinessLog
{
public interface IInvitationBusinessLogic
{
Task ExecuteInvitation(CompanyInvitationData invitationData);
Task<CompanyInvitationResponse> ExecuteInvitation(CompanyInvitationData invitationData);
Task RetriggerCreateCentralIdp(Guid processId);
Task RetriggerCreateSharedIdpServiceAccount(Guid processId);
Task RetriggerUpdateCentralIdpUrls(Guid processId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public InvitationBusinessLogic(
_portalRepositories = portalRepositories;
}

public Task ExecuteInvitation(CompanyInvitationData invitationData)
public Task<CompanyInvitationResponse> ExecuteInvitation(CompanyInvitationData invitationData)
{
if (string.IsNullOrWhiteSpace(invitationData.Email))
{
Expand All @@ -56,7 +56,7 @@ public Task ExecuteInvitation(CompanyInvitationData invitationData)
return ExecuteInvitationInternalAsync(invitationData);
}

private async Task ExecuteInvitationInternalAsync(CompanyInvitationData invitationData)
private async Task<CompanyInvitationResponse> ExecuteInvitationInternalAsync(CompanyInvitationData invitationData)
{
var (userName, firstName, lastName, email, organisationName) = invitationData;
var processStepRepository = _portalRepositories.GetInstance<IProcessStepRepository>();
Expand All @@ -77,6 +77,7 @@ private async Task ExecuteInvitationInternalAsync(CompanyInvitationData invitati
});

await _portalRepositories.SaveAsync().ConfigureAwait(ConfigureAwaitOptions.None);
return new CompanyInvitationResponse(applicationId, company.Id);
}

public Task RetriggerCreateCentralIdp(Guid processId) => TriggerProcessStepInternal(processId, ProcessStepTypeId.RETRIGGER_INVITATION_CREATE_CENTRAL_IDP);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,12 @@ public InvitationController(IInvitationBusinessLogic logic)
[HttpPost]
[Authorize(Roles = "invite_new_partner")]
[Authorize(Policy = PolicyTypes.CompanyUser)]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(typeof(CompanyInvitationResponse), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status400BadRequest)]
[ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status500InternalServerError)]
[ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status502BadGateway)]
[ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status409Conflict)]
public Task ExecuteInvitation([FromBody] CompanyInvitationData invitationData) =>
public Task<CompanyInvitationResponse> ExecuteInvitation([FromBody] CompanyInvitationData invitationData) =>
_logic.ExecuteInvitation(invitationData);

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/********************************************************************************
* Copyright (c) 2024 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

namespace Org.Eclipse.TractusX.Portal.Backend.Administration.Service.Models;

public record CompanyInvitationResponse(Guid ApplicationId, Guid CompanyId);
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,14 @@ public async Task ExecuteInvitation_WithValidData_CreatesExpected()
.WithEmailPattern(x => x.Email)
.Create();

await _sut.ExecuteInvitation(invitationData);
var result = await _sut.ExecuteInvitation(invitationData);

processes.Should().ContainSingle().And.Satisfy(x => x.ProcessTypeId == ProcessTypeId.INVITATION);
processSteps.Should().ContainSingle().And.Satisfy(x => x.ProcessStepTypeId == ProcessStepTypeId.INVITATION_CREATE_CENTRAL_IDP && x.ProcessStepStatusId == ProcessStepStatusId.TODO);
invitations.Should().ContainSingle().And.Satisfy(x => x.ProcessId == processes.Single().Id && x.UserName == "testUserName" && x.ApplicationId == ApplicationId);
A.CallTo(() => _companyRepository.CreateCompany(A<string>._, null)).MustHaveHappenedOnceExactly();
A.CallTo(() => _applicationRepository.CreateCompanyApplication(CompanyId, CompanyApplicationStatusId.CREATED, CompanyApplicationTypeId.INTERNAL, null)).MustHaveHappenedOnceExactly();
result.Should().Be(new CompanyInvitationResponse(ApplicationId, CompanyId));
}

[Theory]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,15 @@ public async Task ExecuteInvitation_ReturnsExpected()
{
// Arrange
var data = _fixture.Create<CompanyInvitationData>();
var expectedResponse = new CompanyInvitationResponse(Guid.NewGuid(), Guid.NewGuid());
A.CallTo(() => _logic.ExecuteInvitation(A<CompanyInvitationData>._)).Returns(expectedResponse);

// Act
await _controller.ExecuteInvitation(data);
var result = await _controller.ExecuteInvitation(data);

// Assert
A.CallTo(() => _logic.ExecuteInvitation(data)).MustHaveHappenedOnceExactly();
result.Should().Be(expectedResponse);
}

[Fact]
Expand Down

0 comments on commit 784866b

Please sign in to comment.