sendToBackend method
Implementation
Future<void> sendToBackend(String accessToken, [String? tokenType]) async {
print('Function Send To Backend accessToken: $accessToken');
try {
final model = AzureTokenInputModel(
accessToken: accessToken,
idpName: idpName_shared_preferences ?? '');
final response = await _dio.post(
'$apiUrl/auth',
data: model.toJson(),
);
if (response.statusCode == 200) {
print('Response from backend: ${response.data}');
final responseData = AuthResponseModel.fromJson(response.data);
print('ErrorDetails: ${responseData.errorDetails}');
print('Username: ${responseData.username}');
print('Entities: ${responseData.entities}');
print('Entities Length: ${responseData.entities.length}');
if(responseData.entities.length == 1){
final entityDta = responseData.entities[0];
print('Single Entity tenant: ${entityDta.tenant}');
print('Single Entity refreshtoken: ${entityDta.refreshToken}');
getJwtFromBackend(responseData.username, entityDta.tenant, entityDta.refreshToken, deviceId_shared_preferences ?? '');
}else{
print('Multiple Entities');
List<String> tenantList = responseData.entities.map((e) => e.tenant).toList();
List<String> tokens = responseData.entities.map((e) => e.refreshToken).toList();
WidgetsBinding.instance.addPostFrameCallback((_) {
if (globalKey.currentState != null) {
globalKey.currentState!.switchScreen(
"selectEntity",
options: tenantList,
user: responseData.username,
device: deviceId_shared_preferences ?? '',
tokens: tokens,
);
}
});
}
} else {
print('Backend error: ${response.statusCode} ${response.data}');
}
} catch (e) {
print('Error sending tokens to backend: $e');
if (e is DioError) {
print('Request data: ${e.requestOptions.data}');
print('Response data: ${e.response?.data}');
}
}
}