66 lines
4.1 KiB
C#
66 lines
4.1 KiB
C#
using Indotalent.ConfigBackEnd.Extensions;
|
|
using Indotalent.Features.Organization.Employee.Cqrs;
|
|
using MediatR;
|
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
|
|
|
namespace Indotalent.Features.Organization.Employee;
|
|
|
|
public static class EmployeeEndpoint
|
|
{
|
|
public static void MapEmployeeEndpoints(this IEndpointRouteBuilder app)
|
|
{
|
|
var group = app.MapGroup("/employee")
|
|
.WithTags("Employees")
|
|
.RequireAuthorization(policy =>
|
|
policy.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
|
|
.RequireAuthenticatedUser());
|
|
|
|
group.MapGet("/", async (IMediator mediator) =>
|
|
(await mediator.Send(new GetEmployeeListQuery())).ToApiResponse("Employee list retrieved successfully"));
|
|
|
|
group.MapGet("/lookup", async (IMediator mediator) =>
|
|
(await mediator.Send(new LookupQuery())).ToApiResponse("Lookups retrieved successfully"));
|
|
|
|
group.MapGet("/{id}", async (string id, IMediator mediator) =>
|
|
(await mediator.Send(new GetEmployeeByIdQuery(id))).ToApiResponse("Employee detail retrieved successfully"));
|
|
|
|
group.MapPost("/", async (CreateEmployeeRequest request, IMediator mediator) =>
|
|
(await mediator.Send(new CreateEmployeeCommand(request))).ToApiResponse("Employee created successfully", StatusCodes.Status201Created));
|
|
|
|
group.MapPost("/update", async (UpdateEmployeeRequest request, IMediator mediator) =>
|
|
(await mediator.Send(new UpdateEmployeeCommand(request))).ToApiResponse("Employee updated successfully"));
|
|
|
|
group.MapPost("/delete/{id}", async (string id, IMediator mediator) =>
|
|
(await mediator.Send(new DeleteEmployeeByIdCommand(new DeleteEmployeeByIdRequest(id)))).ToApiResponse("Employee deleted successfully"));
|
|
|
|
group.MapGet("/income/list/{employeeId}", async (string employeeId, IMediator mediator) =>
|
|
(await mediator.Send(new GetEmployeeIncomeListByEmployeeIdQuery(employeeId))).ToApiResponse("Employee income list retrieved"));
|
|
|
|
group.MapGet("/income/{id}", async (string id, IMediator mediator) =>
|
|
(await mediator.Send(new GetEmployeeIncomeByIdQuery(id))).ToApiResponse("Employee income detail retrieved"));
|
|
|
|
group.MapPost("/income", async (CreateEmployeeIncomeRequest request, IMediator mediator) =>
|
|
(await mediator.Send(new CreateEmployeeIncomeCommand(request))).ToApiResponse("Employee income created", StatusCodes.Status201Created));
|
|
|
|
group.MapPost("/income/update", async (UpdateEmployeeIncomeRequest request, IMediator mediator) =>
|
|
(await mediator.Send(new UpdateEmployeeIncomeCommand(request))).ToApiResponse("Employee income updated"));
|
|
|
|
group.MapPost("/income/delete/{id}", async (string id, IMediator mediator) =>
|
|
(await mediator.Send(new DeleteEmployeeIncomeByIdCommand(new DeleteEmployeeIncomeByIdRequest(id)))).ToApiResponse("Employee income deleted successfully"));
|
|
|
|
group.MapGet("/deduction/list/{employeeId}", async (string employeeId, IMediator mediator) =>
|
|
(await mediator.Send(new GetEmployeeDeductionListByEmployeeIdQuery(employeeId))).ToApiResponse("Employee deduction list retrieved"));
|
|
|
|
group.MapGet("/deduction/{id}", async (string id, IMediator mediator) =>
|
|
(await mediator.Send(new GetEmployeeDeductionByIdQuery(id))).ToApiResponse("Employee deduction detail retrieved"));
|
|
|
|
group.MapPost("/deduction", async (CreateEmployeeDeductionRequest request, IMediator mediator) =>
|
|
(await mediator.Send(new CreateEmployeeDeductionCommand(request))).ToApiResponse("Employee deduction created", StatusCodes.Status201Created));
|
|
|
|
group.MapPost("/deduction/update", async (UpdateEmployeeDeductionRequest request, IMediator mediator) =>
|
|
(await mediator.Send(new UpdateEmployeeDeductionCommand(request))).ToApiResponse("Employee deduction updated"));
|
|
|
|
group.MapPost("/deduction/delete/{id}", async (string id, IMediator mediator) =>
|
|
(await mediator.Send(new DeleteEmployeeDeductionByIdCommand(new DeleteEmployeeDeductionByIdRequest(id)))).ToApiResponse("Employee deduction deleted successfully"));
|
|
}
|
|
} |