registerDevice method

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

Implementation

Future<void> registerDevice(Map<String, dynamic> data) async {
  const String url = 'http://192.168.0.87:3333/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 clientSecret = clientConfig['CLIENT_SECRET'];
          final appidpid = int.tryParse(config['appidpid']);
          final idpid = int.tryParse(config['idpid']);

          // Store values in SharedPreferences
          final prefs = await SharedPreferences.getInstance();
          await prefs.setString('clientId', clientId);
          await prefs.setString('clientSecret', clientSecret ?? '');
          await prefs.setInt('appidpid', appidpid ?? 0);
          await prefs.setInt('idpid', idpid ?? 0);
        }
      }
    } else {
      print('Failed to register device: ${response.statusCode} ${response.data}');
    }
  } catch (e) {
    print('Error registering device: $e');
  }
}