Skip to content

Commit 5911231

Browse files
committed
ECER-5338: Endpoint and validation piece for Workexperience object for ICRA eligibility assessment application
1 parent 70b2a25 commit 5911231

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/ECER.Clients.RegistryPortal/ECER.Clients.RegistryPortal.Server/References/ReferencesEndpoints.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,34 @@ public void Register(IEndpointRouteBuilder endpointRouteBuilder)
9292
}
9393
return TypedResults.Ok();
9494
}).WithOpenApi("Handles reference optout", string.Empty, "reference_optout").WithParameterValidation();
95+
96+
endpointRouteBuilder.MapPost("/api/References/ICRAWorkExperience", async Task<Results<Ok, BadRequest<ProblemDetails>>> (ICRAWorkExperienceReferenceSubmissionRequest request, IMediator messageBus, IMapper mapper, CancellationToken ct) =>
97+
{
98+
if (request.Token == null) return TypedResults.BadRequest(new ProblemDetails { Detail = "Token is required" });
99+
100+
var recaptchaResult = await messageBus.Send(new Managers.Registry.Contract.Recaptcha.VerifyRecaptchaCommand(request.RecaptchaToken), ct);
101+
if (!recaptchaResult.Success)
102+
{
103+
var problemDetails = new ProblemDetails
104+
{
105+
Status = StatusCodes.Status400BadRequest,
106+
Detail = "Invalid recaptcha token",
107+
Extensions = { ["errors"] = recaptchaResult.ErrorCodes }
108+
};
109+
return TypedResults.BadRequest(problemDetails);
110+
}
111+
112+
var mapped = mapper.Map<Managers.Registry.Contract.ICRA.ICRAWorkExperienceReferenceSubmissionRequest>(request);
113+
var result = await messageBus.Send(new Managers.Registry.Contract.Applications.SubmitReferenceCommand(request.Token)
114+
{
115+
ICRAWorkExperienceReferenceSubmissionRequest = mapped
116+
}, ct);
117+
if (!result.IsSuccess)
118+
{
119+
return TypedResults.BadRequest(new ProblemDetails { Detail = result.ErrorMessage });
120+
}
121+
return TypedResults.Ok();
122+
}).WithOpenApi("Handles ICRA work experience reference submission", string.Empty, "icra_workExperience_reference_post").WithParameterValidation();
95123
}
96124
}
97125

@@ -115,6 +143,22 @@ public enum UnabletoProvideReferenceReasons
115143
Other
116144
}
117145

146+
public record ICRAWorkExperienceReferenceSubmissionRequest([Required] string Token, [Required] string RecaptchaToken)
147+
{
148+
public string? FirstName { get; set; }
149+
public string? LastName { get; set; }
150+
public string? EmailAddress { get; set; }
151+
public string? PhoneNumber { get; set; }
152+
public string? CountryId { get; set; }
153+
public string? EmployerName { get; set; }
154+
public string? PositionTitle { get; set; }
155+
public DateTime? StartDate { get; set; }
156+
public DateTime? EndDate { get; set; }
157+
public bool? WorkedWithChildren { get; set; }
158+
public IEnumerable<ChildcareAgeRanges>? ChildcareAgeRanges { get; set; }
159+
public ReferenceRelationship? ReferenceRelationship { get; set; }
160+
}
161+
118162
public record WorkExperienceReferenceDetails()
119163
{
120164
[Required]

0 commit comments

Comments
 (0)