login method
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,
);
}
}