Skip to content

Commit

Permalink
refactor: use BiMap in FraudCheckRequestBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
Tr00d committed Nov 30, 2023
1 parent 5e3945c commit 747bfb9
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions Vonage/NumberInsightV2/FraudCheck/FraudCheckRequestBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal class FraudCheckRequestBuilder : IBuilderForPhone, IBuilderForOptional

/// <inheritdoc />
public Result<FraudCheckRequest> Create() =>
this.phone.Match(this.ToSuccess, ToFailure)
this.phone.BiMap(this.ToRequest, ToParsingFailure)
.Map(InputEvaluation<FraudCheckRequest>.Evaluate)
.Bind(evaluation => evaluation.WithRules(VerifyInsights));

Expand All @@ -39,15 +39,13 @@ public IBuilderForOptional WithSimSwap()
return this;
}

private static Result<FraudCheckRequest> ToFailure(IResultFailure failure) =>
Result<FraudCheckRequest>.FromFailure(
ParsingFailure.FromFailures(ResultFailure.FromErrorMessage(failure.GetFailureMessage())));
private static IResultFailure ToParsingFailure(IResultFailure failure) =>
ParsingFailure.FromFailures(ResultFailure.FromErrorMessage(failure.GetFailureMessage()));

private Result<FraudCheckRequest> ToSuccess(PhoneNumber number) =>
Result<FraudCheckRequest>.FromSuccess(new FraudCheckRequest
{
Phone = number, Insights = this.insights,
});
private FraudCheckRequest ToRequest(PhoneNumber number) => new()
{
Phone = number, Insights = this.insights,
};

private static Result<FraudCheckRequest> VerifyInsights(FraudCheckRequest request) =>
InputValidation.VerifyNotEmpty(request, request.Insights, nameof(request.Insights));
Expand Down

0 comments on commit 747bfb9

Please sign in to comment.