diff --git a/CleanArchitecture/.dockerignore b/CleanArchitecture/.dockerignore index 4d72b4f..b4995e7 100644 --- a/CleanArchitecture/.dockerignore +++ b/CleanArchitecture/.dockerignore @@ -27,4 +27,4 @@ README.md !.git/HEAD !.git/config !.git/packed-refs -!.git/refs/heads/** \ No newline at end of file +!.git/refs/heads/** diff --git a/CleanArchitecture/CleanArchitecture.API/Controllers/TestController.cs b/CleanArchitecture/CleanArchitecture.API/Controllers/TestController.cs new file mode 100644 index 0000000..6b1ff2e --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.API/Controllers/TestController.cs @@ -0,0 +1,25 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace CleanArchitecture.API.Controllers +{ + [Route("api/v1/[controller]")] + [ApiController] + public class TestController : ControllerBase + { + private readonly IConfiguration _configuration; + public TestController(IConfiguration configuration) + { + + _configuration = configuration; + + } + + + [HttpGet] + public IActionResult Get() + { + return Ok(new { configuration = _configuration["Environment"] }); + } + } +} diff --git a/CleanArchitecture/CleanArchitecture.API/Dockerfile b/CleanArchitecture/CleanArchitecture.API/Dockerfile new file mode 100644 index 0000000..6395483 --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.API/Dockerfile @@ -0,0 +1,33 @@ +#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER app +WORKDIR /app +EXPOSE 80 + +#seteo de variables de entorno +ARG ENVIRONMENT=dev +ENV ASPNETCORE_ENVIRONMENT=${ENVIRONMENT} +ENV ASPNETCORE_URLS=http://+:80 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["CleanArchitecture.API/CleanArchitecture.API.csproj", "CleanArchitecture.API/"] +COPY ["CleanArchitecture.Application/CleanArchitecture.Application.csproj", "CleanArchitecture.Application/"] +COPY ["CleanArchitecture.Domain/CleanArchitecture.Domain.csproj", "CleanArchitecture.Domain/"] +COPY ["CleanArchitecture.Data/CleanArchitecture.Infrastructure.csproj", "CleanArchitecture.Data/"] +COPY ["CleanArchitecture.Identity/CleanArchitecture.Identity.csproj", "CleanArchitecture.Identity/"] +RUN dotnet restore "./CleanArchitecture.API/CleanArchitecture.API.csproj" +COPY . . +WORKDIR "/src/CleanArchitecture.API" +RUN dotnet build "./CleanArchitecture.API.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./CleanArchitecture.API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "CleanArchitecture.API.dll"] \ No newline at end of file diff --git a/CleanArchitecture/CleanArchitecture.API/Program.cs b/CleanArchitecture/CleanArchitecture.API/Program.cs index 9e0799d..76408b5 100644 --- a/CleanArchitecture/CleanArchitecture.API/Program.cs +++ b/CleanArchitecture/CleanArchitecture.API/Program.cs @@ -14,10 +14,12 @@ builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); +builder.Services.AddApplicationServices(); + +//aniado nueva cosa builder.Services.AddInfrastructureServices(builder.Configuration); -builder.Services.AddApplicationServices(); builder.Services.ConfigureIdentityServices(builder.Configuration); builder.Services.AddCors(o => diff --git a/CleanArchitecture/CleanArchitecture.API/appsettings.Development.json b/CleanArchitecture/CleanArchitecture.API/appsettings.Development.json index 950bd10..bd1c22f 100644 --- a/CleanArchitecture/CleanArchitecture.API/appsettings.Development.json +++ b/CleanArchitecture/CleanArchitecture.API/appsettings.Development.json @@ -20,5 +20,6 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "Environment": "Development" } diff --git a/CleanArchitecture/CleanArchitecture.API/appsettings.Production.json b/CleanArchitecture/CleanArchitecture.API/appsettings.Production.json index 5d068b6..395c09d 100644 --- a/CleanArchitecture/CleanArchitecture.API/appsettings.Production.json +++ b/CleanArchitecture/CleanArchitecture.API/appsettings.Production.json @@ -20,5 +20,6 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "Environment": "Production" } diff --git a/CleanArchitecture/CleanArchitecture.API/appsettings.json b/CleanArchitecture/CleanArchitecture.API/appsettings.json index 6e29d67..f682b5f 100644 --- a/CleanArchitecture/CleanArchitecture.API/appsettings.json +++ b/CleanArchitecture/CleanArchitecture.API/appsettings.json @@ -21,5 +21,6 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "Environment": "Development" } diff --git a/CleanArchitecture/CleanArchitecture.Application.UnitTests/Features/Video/Queries/GetVideosListQueryHandlerXUnitTests.cs b/CleanArchitecture/CleanArchitecture.Application.UnitTests/Features/Video/Queries/GetVideosListQueryHandlerXUnitTests.cs index c10534c..9e5ebd3 100644 --- a/CleanArchitecture/CleanArchitecture.Application.UnitTests/Features/Video/Queries/GetVideosListQueryHandlerXUnitTests.cs +++ b/CleanArchitecture/CleanArchitecture.Application.UnitTests/Features/Video/Queries/GetVideosListQueryHandlerXUnitTests.cs @@ -37,7 +37,7 @@ namespace CleanArchitecture.Application.UnitTests.Features.Video.Queries var result = await handler.Handle(request, CancellationToken.None); result.ShouldBeOfType>(); - result.Count.ShouldBe(1); + result.Count.ShouldBe(2); } } } diff --git a/CleanArchitecture/CleanArchitecture.Application.UnitTests/Mocks/MockVideoRepository.cs b/CleanArchitecture/CleanArchitecture.Application.UnitTests/Mocks/MockVideoRepository.cs index 4a03542..9edc4f1 100644 --- a/CleanArchitecture/CleanArchitecture.Application.UnitTests/Mocks/MockVideoRepository.cs +++ b/CleanArchitecture/CleanArchitecture.Application.UnitTests/Mocks/MockVideoRepository.cs @@ -20,6 +20,10 @@ namespace CleanArchitecture.Application.UnitTests.Mocks .With(tr => tr.CreatedBy, "Alex") .Create() ); + videos.Add(fixture.Build