First version of Service
This commit is contained in:
		| @@ -0,0 +1,70 @@ | ||||
| using Asp.Versioning; | ||||
| using Core.Inventory.Application.UseCases.Inventory.Input; | ||||
| using Core.Inventory.Application.UseCases.Inventory.Ports; | ||||
| using Lib.Architecture.BuildingBlocks; | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
|  | ||||
| namespace Core.Inventory.Service.API.Controllers | ||||
| { | ||||
|     [ApiVersion("1.0")] | ||||
|     [Route("api/v{api-version:apiVersion}/[controller]")] | ||||
|     [Produces("application/json")] | ||||
|     [ApiController] | ||||
|     public class FurnitureVariantController( | ||||
|         IComponentHandler<GetFurnitureVariantByIdRequest> getByIdHandler, | ||||
|         IComponentHandler<GetAllFurnitureVariantsByModelIdRequest> getAllHandler, | ||||
|         IComponentHandler<CreateFurnitureVariantRequest> createHandler, | ||||
|         IComponentHandler<UpdateFurnitureVariantRequest> updateHandler, | ||||
|         IComponentHandler<ChangeFurnitureVariantStatusRequest> changeStatusHandler, | ||||
|         IFurnitureVariantPort port) : ControllerBase | ||||
|     { | ||||
|         private readonly IComponentHandler<GetFurnitureVariantByIdRequest> _getByIdHandler = getByIdHandler; | ||||
|         private readonly IComponentHandler<GetAllFurnitureVariantsByModelIdRequest> _getAllHandler = getAllHandler; | ||||
|         private readonly IComponentHandler<CreateFurnitureVariantRequest> _createHandler = createHandler; | ||||
|         private readonly IComponentHandler<UpdateFurnitureVariantRequest> _updateHandler = updateHandler; | ||||
|         private readonly IComponentHandler<ChangeFurnitureVariantStatusRequest> _changeStatusHandler = changeStatusHandler; | ||||
|         private readonly IFurnitureVariantPort _port = port; | ||||
|  | ||||
|         [HttpGet("GetAllByModelId")] | ||||
|         public async Task<IActionResult> GetAllAsync([FromQuery] string modelId, CancellationToken cancellationToken) | ||||
|         { | ||||
|             if (string.IsNullOrEmpty(modelId)) return BadRequest("Model ID is required"); | ||||
|  | ||||
|             var request = new GetAllFurnitureVariantsByModelIdRequest { ModelId = modelId }; | ||||
|             await _getAllHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); | ||||
|             return _port.ViewModel; | ||||
|         } | ||||
|  | ||||
|         [HttpPost("GetById")] | ||||
|         public async Task<IActionResult> GetByIdAsync([FromBody] GetFurnitureVariantByIdRequest request, CancellationToken cancellationToken) | ||||
|         { | ||||
|             if (string.IsNullOrEmpty(request?.Id)) return BadRequest("Furniture variant identifier is required"); | ||||
|  | ||||
|             await _getByIdHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); | ||||
|             return _port.ViewModel; | ||||
|         } | ||||
|  | ||||
|         [HttpPost("Create")] | ||||
|         public async Task<IActionResult> CreateAsync([FromBody] CreateFurnitureVariantRequest request, CancellationToken cancellationToken) | ||||
|         { | ||||
|             await _createHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); | ||||
|             return _port.ViewModel; | ||||
|         } | ||||
|  | ||||
|         [HttpPut("Update")] | ||||
|         public async Task<IActionResult> UpdateAsync([FromBody] UpdateFurnitureVariantRequest request, CancellationToken cancellationToken) | ||||
|         { | ||||
|             await _updateHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); | ||||
|             return _port.ViewModel; | ||||
|         } | ||||
|  | ||||
|         [HttpPatch("ChangeStatus")] | ||||
|         public async Task<IActionResult> ChangeStatusAsync([FromBody] ChangeFurnitureVariantStatusRequest request, CancellationToken cancellationToken) | ||||
|         { | ||||
|             if (string.IsNullOrEmpty(request?.Id)) return BadRequest("Furniture variant identifier is required"); | ||||
|  | ||||
|             await _changeStatusHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); | ||||
|             return _port.ViewModel; | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user