handle static method

CloudMediaError handle(
  1. dynamic error
)

Implementation

static CloudMediaError handle(dynamic error) {
  if (error is CloudMediaError) return error;

  if (error is SocketException) {
    return const CloudMediaError(
      code: 'network_error',
      message: 'No internet connection.',
    );
  }

  if (error is FirebaseException) {
    switch (error.code) {
      case 'permission-denied':
        return CloudMediaError(
          code: 'permission_denied',
          message: 'Firebase permission denied.',
          originalError: error,
        );
      case 'not-found':
        return CloudMediaError(
          code: 'not_found',
          message: 'Media not found.',
          originalError: error,
        );
      default:
        return CloudMediaError(
          code: error.code,
          message: error.message ?? 'Firebase error.',
          originalError: error,
        );
    }
  }

  return CloudMediaError(
    code: 'unknown_error',
    message: error.toString(),
    originalError: error,
  );
}