SdkContract.auto constructor
Creates a common contract with optional success flag and error code checks.
Defaults successStatusCodes to 200, 201, and 204. When
successFlag is provided, the body is only treated as successful if that
field is true. When errorCode is provided, the body is only treated as
successful if that field is 0 or missing.
Implementation
factory SdkContract.auto({
Set<int>? successStatusCodes,
required String data,
required String message,
String? successFlag,
String? errorCode,
}) {
return SdkContract(
successStatusCodes: successStatusCodes ?? {200, 201, 204},
dataPath: data,
messagePath: message,
isBodySuccess: (json, _) {
final flagOk = successFlag == null ? true : (json[successFlag] == true);
final codeOk = errorCode == null ? true : ((json[errorCode] ?? 0) == 0);
return flagOk && codeOk;
},
);
}