extractCallbackParams static method

Map<String, String> extractCallbackParams(
  1. String callbackUrl
)

Extracts and validates parameters from a callback URL

Implementation

static Map<String, String> extractCallbackParams(String callbackUrl) {
  final uri = Uri.tryParse(callbackUrl);
  if (uri == null) {
    throw FrappeNetworkException(
      'Invalid callback URL format',
      code: 'invalid_callback_url',
    );
  }

  final params = uri.queryParameters;

  // Check for OAuth2 error parameters
  if (params.containsKey('error')) {
    final error = params['error']!;
    final errorDescription = params['error_description'];
    final errorUri = params['error_uri'];

    throw FrappeNetworkException(
      errorDescription ?? 'OAuth2 error: $error',
      code: error,
      context: {
        if (error.isNotEmpty) 'error': error,
        if (errorDescription != null) 'error_description': errorDescription,
        if (errorUri != null) 'error_uri': errorUri,
      },
    );
  }

  return params;
}