registerDevice method

Future<void> registerDevice(
  1. Map<String, dynamic> data
)

Implementation

Future<void> registerDevice(Map<String, dynamic> data) async {
  final String url = '$apiUrl/registerdevice';
  print('Registering device with data: $data');

  try {
    final response = await _dio.post(
      url,
      data: data,
      options: Options(
        headers: {'Content-Type': 'application/json'},
      ),
    );

    print('Response: ${response.data}');
    if (response.statusCode == 200) {
      print('Device registered successfully: ${response.data}');
      final responseData = response.data;
      if (responseData['IsSuccess'] == true) {
        final configurations = responseData['Configurations'];
        if (configurations != null && configurations.isNotEmpty) {
          final config = configurations[0];
          final clientConfig = config['appidpclientconfiguration'];
          final clientId = clientConfig['CLIENT_ID'];
          final idpName = config['idpname'];
          final deviceId = responseData['DeviceId'];

          print('Client Id: $clientId');
          print('IDP Name: $idpName');
          print('Device ID: $deviceId');

          // Store values in SharedPreferences
          final prefs = await SharedPreferences.getInstance();
          await prefs.setString('clientId', clientId);
          await prefs.setString('idpName', idpName);
          await prefs.setString('deviceId', deviceId.toString());
        }
      }
    } else {
      print('Failed to register device: ${response.statusCode} ${response.data}');
    }
  } catch (e) {
    print('Error registering device: $e');
  }
}