decodeRequest static method

MailboxMgmtRequest decodeRequest(
  1. Uint8List bytes
)

Decode request from JSON bytes

Implementation

static MailboxMgmtRequest decodeRequest(Uint8List bytes) {
  try {
    final json = utf8.decode(bytes);
    final data = jsonDecode(json) as Map<String, dynamic>;

    final operation = data['operationType'] as String;

    switch (operation) {
      case 'createMailbox':
        return CreateMailboxRequest.fromJson(data);
      case 'grantAccess':
        return GrantAccessRequest.fromJson(data);
      case 'revokeAccess':
        return RevokeAccessRequest.fromJson(data);
      case 'listACL':
        return ListACLRequest.fromJson(data);
      case 'updateConfig':
        return UpdateMailboxConfigRequest.fromJson(data);
      case 'deleteMailbox':
        return DeleteMailboxRequest.fromJson(data);
      case 'listMailboxes':
        return ListMailboxesRequest.fromJson(data);
      case 'getMailboxInfo':
        return GetMailboxInfoRequest.fromJson(data);
      case 'queryCapacity':
        return QueryCapacityRequest.fromJson(data);
      default:
        throw FormatException('Unknown operation type: $operation');
    }
  } catch (e) {
    throw FormatException('Failed to decode mailbox management request: $e');
  }
}