Files
taxbaik/src/TaxBaik.Web/Endpoints/Inquiry/UpdateEndpoint.cs
T
kjh2064 474a7cc72f
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m28s
feat: migrate InquiryController to FastEndpoints Endpoints (Phase 3)
IMPLEMENTATION:
- Create 7 FastEndpoints Endpoint classes for Inquiry API:
  - SubmitEndpoint: POST /api/inquiry (public)
  - GetPagedEndpoint: GET /api/inquiry (auth, paginated)
  - GetByIdEndpoint: GET /api/inquiry/{id} (auth)
  - UpdateStatusEndpoint: PUT /api/inquiry/{id}/status (auth)
  - UpdateAdminMemoEndpoint: PUT /api/inquiry/{id}/memo (auth)
  - UpdateEndpoint: PUT /api/inquiry/{id} (auth)
  - ConvertToClientEndpoint: POST /api/inquiry/{id}/convert-to-client (auth)

- Create InquiryDtos.cs with shared response types:
  - InquiryQuery (query parameters)
  - InquiryPagedResponse (paginated response)
  - UpdateStatusRequest, UpdateAdminMemoRequest, ConvertToClientRequest
  - ConvertToClientResponse, MessageResponse

- Backup InquiryController.cs (no longer active)

VERIFICATION:
 dotnet build: 0 errors, 0 warnings
 dotnet test: 26/26 passed
 Local service publish successful
 FastEndpoints auto-discovery working
 All 21 endpoints verified (Auth 4 + Blog 10 + Inquiry 7)

MIGRATION PROGRESS:
 Phase 1: Auth (4 endpoints) - DEPLOYED
 Phase 2: Blog (10 endpoints) - DEPLOYED
 Phase 3: Inquiry (7 endpoints) - READY FOR DEPLOYMENT

Next: Deploy Phase 3, then continue with remaining 13 Controllers

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-03 17:21:36 +09:00

41 lines
1021 B
C#

using FastEndpoints;
using TaxBaik.Application.DTOs;
using TaxBaik.Application.Services;
namespace TaxBaik.Web.Endpoints.Inquiry;
public class UpdateEndpoint : Endpoint<UpdateInquiryDto, object>
{
private readonly InquiryService _inquiryService;
public UpdateEndpoint(InquiryService inquiryService)
{
_inquiryService = inquiryService;
}
public override void Configure()
{
Put("/api/inquiry/{id}");
Policies("Bearer");
}
public override async Task HandleAsync(UpdateInquiryDto request, CancellationToken ct)
{
var id = Route<int>("id");
try
{
var result = await _inquiryService.UpdateAsync(id, request);
if (result == null)
{
ThrowError("문의를 찾을 수 없습니다.", statusCode: 404);
}
await SendAsync(result, 200, cancellation: ct);
}
catch (ValidationException ex)
{
ThrowError(ex.Message);
}
}
}