Skip to content

Commit

Permalink
refactor: use output port
Browse files Browse the repository at this point in the history
  • Loading branch information
PlesnikJakub committed Jan 17, 2022
1 parent 8219411 commit a7394b2
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 61 deletions.

This file was deleted.

This file was deleted.

12 changes: 0 additions & 12 deletions src/WebApi/Application/UseCases/Account/Withdraw/WithdrawInput.cs

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ namespace Application.UseCases.User.GetUser
{
public record GetUserInput
{
public Guid UserId { get; init; }
public int UserId { get; init; }
}
}
25 changes: 14 additions & 11 deletions src/WebApi/Application/UseCases/User/GetUser/GetUserUseCase.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using Application.Repositories;
using System;
using System.Threading.Tasks;

namespace Application.UseCases.User.GetUser
Expand All @@ -7,24 +8,26 @@ public class GetUserUseCase : IGetUserUseCase
{
private IOutputPort _outputPort;

public GetUserUseCase()
private IUserRepository _userRepository;

public GetUserUseCase(IUserRepository userRepository)
{
_outputPort = new GetUserPresenter();
}
public Task Execute(GetUserInput input)
{
// TODO
return Task.FromResult(0);
_userRepository = userRepository;
}

public void SetOutputPort(IOutputPort outputPort)
public async Task Execute(GetUserInput input)
{
throw new NotImplementedException();
await GetUserInternal(input.UserId);
}

private async Task GetUserInternal(Guid accountId)
public void SetOutputPort(IOutputPort outputPort) => this._outputPort = outputPort;

private async Task GetUserInternal(int userId)
{
_outputPort.NotFound();
var user = await _userRepository.GetById(userId);

_outputPort.Ok(user);
}
}
}
6 changes: 3 additions & 3 deletions src/WebApi/End2endTests/Tests/GetUserTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ public GetUserTests(WebApplicationFactory<WebApi.Startup> factory)
public async Task GetUser_ExistingUser_ShouldReturnUser()
{
// Arrange
var userGuid = Guid.Parse("1f26b2d6-42a6-4c58-a23a-3c00dd54f349");
var url = _url;// + userGuid;
var userGuid = 2;
var url = _url + userGuid;
var client = _factory.CreateClient();

// Act
var response = await client.GetAsync(url);

// Assert
response.EnsureSuccessStatusCode();
Assert.Equal(System.Net.HttpStatusCode.NotFound, response.StatusCode);
}
}
}
2 changes: 2 additions & 0 deletions src/WebApi/WebApi/UseCases/v1/CreateUser/UsersController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

namespace WebApi.UseCases.v1.CreateUser;

// PLACEHOLDER

[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiController]
Expand Down
32 changes: 28 additions & 4 deletions src/WebApi/WebApi/UseCases/v1/GetUser/UsersController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,50 @@
using System.Threading.Tasks;
using System;
using Application.UseCases.User.GetUser;
using Domain.Models;

namespace WebApi.UseCases.v1.GetUser;

[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiController]
public class UsersController : ControllerBase
public class UsersController : ControllerBase, IOutputPort
{
private IActionResult? _viewModel;

private IGetUserUseCase useCase;
public UsersController(IGetUserUseCase getUser)
{
useCase = getUser;
}

void IOutputPort.Invalid()
{
_viewModel = this.BadRequest();
}

void IOutputPort.Ok(UserModel user)
{
_viewModel = this.Ok(new GetUserResponse());
}

void IOutputPort.NotFound()
{
_viewModel = this.NotFound();
}

[HttpGet]
public async Task<GetUserResponse> Get(Guid userGuid)
public async Task<IActionResult> Get(int userId)
{
return new GetUserResponse
var input = new GetUserInput
{
Guid = userGuid,
UserId = userId
};

useCase.SetOutputPort(this);

await useCase.Execute(input);

return _viewModel;
}
}

0 comments on commit a7394b2

Please sign in to comment.