30 lines
1.5 KiB
C#
30 lines
1.5 KiB
C#
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"));
|
|
}
|
|
} |