474a7cc72f
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m28s
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>
41 lines
1021 B
C#
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);
|
|
}
|
|
}
|
|
}
|