using Indotalent.ConfigBackEnd.Extensions; using Indotalent.Features.Organization.Designation.Cqrs; using MediatR; using Microsoft.AspNetCore.Authentication.JwtBearer; namespace Indotalent.Features.Organization.Designation; public static class DesignationEndpoint { public static void MapDesignationEndpoints(this IEndpointRouteBuilder app) { var group = app.MapGroup("/designation").WithTags("Designations") .RequireAuthorization(policy => policy.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme).RequireAuthenticatedUser()); group.MapGet("/", async (IMediator mediator) => (await mediator.Send(new GetDesignationListQuery())).ToApiResponse("Data retrieved")); group.MapGet("/{id}", async (string id, IMediator mediator) => (await mediator.Send(new GetDesignationByIdQuery(id))).ToApiResponse("Detail retrieved")); group.MapPost("/", async (CreateDesignationRequest request, IMediator mediator) => (await mediator.Send(new CreateDesignationCommand(request))).ToApiResponse("Created", StatusCodes.Status201Created)); group.MapPost("/update", async (UpdateDesignationRequest request, IMediator mediator) => (await mediator.Send(new UpdateDesignationCommand(request))).ToApiResponse("Updated")); group.MapPost("/delete/{id}", async (string id, IMediator mediator) => (await mediator.Send(new DeleteDesignationByIdCommand(new DeleteDesignationByIdRequest(id)))).ToApiResponse("Deleted")); } }