Handler.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. using SharedKernel.Results;
  5. namespace Application.Features.Api.Developers.Profile.GetProfile;
  6. internal sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Result<Response>>
  7. {
  8. public async Task<Result<Response>> Handle(Query request, CancellationToken ct)
  9. {
  10. var dev = await db.Developer
  11. .Where(c => c.MemberID == request.MemberID)
  12. .Select(c => new Response(
  13. c.ID,
  14. c.CompanyName,
  15. c.BusinessNumber,
  16. c.CeoName,
  17. c.ContactName,
  18. c.ContactPhone,
  19. (int)c.KycStatus,
  20. c.KycVerifiedAt,
  21. (int)c.ApprovalStatus,
  22. c.ApprovalReason,
  23. c.ApprovedAt,
  24. c.CreatedAt
  25. ))
  26. .FirstOrDefaultAsync(ct);
  27. if (dev is null)
  28. {
  29. return Result.Failure<Response>(Error.NotFound("Developer.NotFound", "개발자 정보가 등록되지 않았습니다."));
  30. }
  31. return Result.Success(dev);
  32. }
  33. }