login method

Future<ModelOptions> login(
  1. String token
)

Login with token using /options endpoint

Implementation

Future<ModelOptions> login(String token) async {
  try {
    final response = await http.get(
      Uri.parse('$_currentBaseUrl${ApiConstants.optionsEndpoint}'),
      headers: _buildHeaders(token),
    );

    if (response.statusCode == 200) {
      final data = jsonDecode(response.body);
      final result = ModelOptions.fromJson(data);

      // Persist token and cache options on successful login
      if (result.success == true) {
        _authToken = token;
        _cachedOptions = result;
      }

      return result;
    } else {
      return ModelOptions(
        success: false,
        message: 'Login failed with status: ${response.statusCode}',
        messageCode: 'ERROR',
        statusCode: response.statusCode,
      );
    }
  } catch (e) {
    print('Login error: $e');
    return ModelOptions(
      success: false,
      message: 'Login failed: ${e.toString()}',
      messageCode: 'EXCEPTION',
      statusCode: 500,
    );
  }
}