SdkContract.auto constructor

SdkContract.auto({
  1. Set<int>? successStatusCodes,
  2. required String data,
  3. required String message,
  4. String? successFlag,
  5. String? errorCode,
})

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;
    },
  );
}