fix: ConsultingActivity correct endpoints and DTOs
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m38s
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m38s
This commit is contained in:
@@ -3,19 +3,20 @@ using TaxBaik.Application.Services;
|
|||||||
|
|
||||||
namespace TaxBaik.Web.Endpoints.ConsultingActivity;
|
namespace TaxBaik.Web.Endpoints.ConsultingActivity;
|
||||||
|
|
||||||
public class Req { public int ClientId { get; set; } public string? Topic { get; set; } public string? Notes { get; set; } public DateTime ActivityDate { get; set; } }
|
public class CreatReq { public int ClientId { get; set; } public string? ActivityType { get; set; } public DateTime ActivityDate { get; set; } public string? Notes { get; set; } }
|
||||||
|
public class UpdateReq { public string? Outcome { get; set; } public DateTime? NextFollowupDate { get; set; } }
|
||||||
public class Resp { public List<object> Data { get; set; } = []; }
|
public class Resp { public List<object> Data { get; set; } = []; }
|
||||||
public class IdResp { public int Id { get; set; } }
|
public class IdResp { public int Id { get; set; } }
|
||||||
public class Qry { public int DaysAhead { get; set; } = 30; }
|
public class DateQry { public DateTime FromDate { get; set; } }
|
||||||
|
|
||||||
public class CreateEp : Endpoint<Req, IdResp>
|
public class CreateEp : Endpoint<CreatReq, IdResp>
|
||||||
{
|
{
|
||||||
readonly ConsultingActivityService _s;
|
readonly ConsultingActivityService _s;
|
||||||
public CreateEp(ConsultingActivityService s) => _s = s;
|
public CreateEp(ConsultingActivityService s) => _s = s;
|
||||||
public override void Configure() { Post("/api/consultingactivity"); Policies("Bearer"); }
|
public override void Configure() { Post("/api/consultingactivity"); Policies("Bearer"); }
|
||||||
public override async Task HandleAsync(Req r, CancellationToken ct)
|
public override async Task HandleAsync(CreatReq r, CancellationToken ct)
|
||||||
{
|
{
|
||||||
var id = await _s.CreateAsync(r.ClientId, r.Topic, r.Notes, r.ActivityDate);
|
var id = await _s.CreateAsync(r.ClientId, r.ActivityType, r.ActivityDate, r.Notes);
|
||||||
await SendAsync(new IdResp { Id = id }, 201, cancellation: ct);
|
await SendAsync(new IdResp { Id = id }, 201, cancellation: ct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -32,19 +33,6 @@ public class GetAllEp : Endpoint<EmptyRequest, Resp>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GetByIdEp : Endpoint<EmptyRequest, object>
|
|
||||||
{
|
|
||||||
readonly ConsultingActivityService _s;
|
|
||||||
public GetByIdEp(ConsultingActivityService s) => _s = s;
|
|
||||||
public override void Configure() { Get("/api/consultingactivity/{id}"); Policies("Bearer"); }
|
|
||||||
public override async Task HandleAsync(EmptyRequest _, CancellationToken ct)
|
|
||||||
{
|
|
||||||
var item = await _s.GetByIdAsync(Route<int>("id"));
|
|
||||||
if (item == null) ThrowError("활동을 찾을 수 없습니다.", statusCode: 404);
|
|
||||||
await SendAsync(item, 200, cancellation: ct);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class GetByClientEp : Endpoint<EmptyRequest, Resp>
|
public class GetByClientEp : Endpoint<EmptyRequest, Resp>
|
||||||
{
|
{
|
||||||
readonly ConsultingActivityService _s;
|
readonly ConsultingActivityService _s;
|
||||||
@@ -57,18 +45,6 @@ public class GetByClientEp : Endpoint<EmptyRequest, Resp>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GetRecentEp : Endpoint<Qry, Resp>
|
|
||||||
{
|
|
||||||
readonly ConsultingActivityService _s;
|
|
||||||
public GetRecentEp(ConsultingActivityService s) => _s = s;
|
|
||||||
public override void Configure() { Get("/api/consultingactivity/recent"); Policies("Bearer"); }
|
|
||||||
public override async Task HandleAsync(Qry q, CancellationToken ct)
|
|
||||||
{
|
|
||||||
var items = await _s.GetRecentActivitiesAsync(q.DaysAhead);
|
|
||||||
await SendAsync(new Resp { Data = items.Cast<object>().ToList() }, 200, cancellation: ct);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class GetPendingFollowupsEp : Endpoint<EmptyRequest, Resp>
|
public class GetPendingFollowupsEp : Endpoint<EmptyRequest, Resp>
|
||||||
{
|
{
|
||||||
readonly ConsultingActivityService _s;
|
readonly ConsultingActivityService _s;
|
||||||
@@ -80,3 +56,27 @@ public class GetPendingFollowupsEp : Endpoint<EmptyRequest, Resp>
|
|||||||
await SendAsync(new Resp { Data = items.Cast<object>().ToList() }, 200, cancellation: ct);
|
await SendAsync(new Resp { Data = items.Cast<object>().ToList() }, 200, cancellation: ct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class GetConsultantActivityEp : Endpoint<DateQry, Resp>
|
||||||
|
{
|
||||||
|
readonly ConsultingActivityService _s;
|
||||||
|
public GetConsultantActivityEp(ConsultingActivityService s) => _s = s;
|
||||||
|
public override void Configure() { Get("/api/consultingactivity/consultant/{consultantId}"); Policies("Bearer"); }
|
||||||
|
public override async Task HandleAsync(DateQry q, CancellationToken ct)
|
||||||
|
{
|
||||||
|
var items = await _s.GetConsultantActivityAsync(Route<int>("consultantId"), q.FromDate);
|
||||||
|
await SendAsync(new Resp { Data = items.Cast<object>().ToList() }, 200, cancellation: ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UpdateEp : Endpoint<UpdateReq, object>
|
||||||
|
{
|
||||||
|
readonly ConsultingActivityService _s;
|
||||||
|
public UpdateEp(ConsultingActivityService s) => _s = s;
|
||||||
|
public override void Configure() { Put("/api/consultingactivity/{id}"); Policies("Bearer"); }
|
||||||
|
public override async Task HandleAsync(UpdateReq r, CancellationToken ct)
|
||||||
|
{
|
||||||
|
await _s.UpdateAsync(Route<int>("id"), r.Outcome, r.NextFollowupDate);
|
||||||
|
await SendAsync(new { message = "업데이트 완료" }, 200, cancellation: ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user