sendToBackend method

Future<void> sendToBackend(
  1. String accessToken, [
  2. String? tokenType
])

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}');
    }
  }
}