sendToBackend method

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

Implementation

Future<void> sendToBackend(String accessToken, BuildContext context,
    [String? tokenType]) async {
  try {
    final model = AzureTokenInputModel(
        accessToken: accessToken,
        idpName: idpName_shared_preferences ?? '',
        tokenType: tokenType);
    final response = await _dio.post(
      '${Configuration.AuthUrl}/auth',
      data: model.toJson(),
    );

    if (response.statusCode == 200) {
      final responseData = AuthResponseModel.fromJson(response.data);
      print('Entities Length: ${responseData.entities.length}');
      if (responseData.entities.length == 1) {
        final entityDta = responseData.entities[0];
        print('Single Entity');
        final FlutterSecureStorage secureStorage = FlutterSecureStorage();
        String jsonString = jsonEncode(response.data);
        await secureStorage.write(key: "Entities_List", value: jsonString);
        await secureStorage.write(
            key: "idpname_backend", value: responseData.idpname_backend);
        if (context.mounted) {
          getJwtFromBackend(
              responseData.username,
              responseData.idpname_backend,
              entityDta.tenant,
              entityDta.refreshToken,
              deviceId_shared_preferences ?? '',
              context);
        }
      } else {
        print('Multiple Entities');
        final FlutterSecureStorage secureStorage = FlutterSecureStorage();
        String jsonString = jsonEncode(response.data);
        await secureStorage.write(key: "Entities_List", value: jsonString);
         await secureStorage.write(key: "idpname_backend", value: responseData.idpname_backend);
        await secureStorage.delete(key: "JWT_Token");
        context.goNamed('/');
      }
    } 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}');
    }
  }
}