parsePermissionDenial function

({String? message, String? permission}) parsePermissionDenial(
  1. Map<String, dynamic> body
)

The denial is the body itself or nested under detail.

Implementation

({String? message, String? permission}) parsePermissionDenial(
  Map<String, dynamic> body,
) {
  final dynamic detail = body['detail'];
  final Map<String, dynamic>? candidate = body.containsKey('missing_tuple')
      ? body
      : (detail is Map<String, dynamic> ? detail : null);

  final dynamic tuple = candidate?['missing_tuple'];
  final dynamic object = tuple is Map<String, dynamic> ? tuple['object'] : null;
  final dynamic message =
      candidate?['message'] ?? (detail is String ? detail : null);

  return (
    message: message is String ? message : null,
    permission: object is String ? object : null,
  );
}