mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
- add SCM guidance for deriving base quantities through line unit-of-measure validation`n- add security guidance for parameterizing SetFilter with external text`n- add test isolation guidance for resetting per-test state before initialization guards`n- add web-service guidance for JSON null handling and invariant standard format 9`n- route and cover all five rules with paired evaluation fixtures
28 lines
929 B
AL
28 lines
929 B
AL
codeunit 50172 "Contact Payload Reader Good"
|
|
{
|
|
procedure ApplyPayload(var Contact: Record Contact; Payload: JsonObject)
|
|
var
|
|
EmailAddress: Text;
|
|
begin
|
|
if TryGetText(Payload, 'email', EmailAddress) then
|
|
Contact.Validate("E-Mail", CopyStr(EmailAddress, 1, MaxStrLen(Contact."E-Mail")));
|
|
Contact.Modify(true);
|
|
end;
|
|
|
|
local procedure TryGetText(Payload: JsonObject; PropertyName: Text; var Value: Text): Boolean
|
|
var
|
|
Token: JsonToken;
|
|
begin
|
|
if not Payload.Get(PropertyName, Token) then
|
|
exit(false);
|
|
if not Token.IsValue() then
|
|
Error(NotAValueErr, PropertyName);
|
|
if Token.AsValue().IsNull() then
|
|
exit(false);
|
|
Value := Token.AsValue().AsText();
|
|
exit(true);
|
|
end;
|
|
|
|
var
|
|
NotAValueErr: Label 'The property %1 must contain a single value.', Comment = '%1 = JSON property name';
|
|
}
|