addCamera method

  1. @override
Future<Map<String, dynamic>> addCamera(
  1. String wifiSsid,
  2. String wifiPassword
)
override

Implementation

@override
Future<Map<String, dynamic>> addCamera(
    String wifiSsid, String wifiPassword) async {
  // if (isRequestPending) {
  //   return {
  //     "isError": true,
  //     "message": "PENDING_PREVIOUS_REQUEST",
  //     "details": "Called addCamera()"
  //   };
  // }
  try {
    // isRequestPending = true;

    final apiResponse = await apiService.fetchMasterAccount();
    if (apiResponse['isError']) {
      // isRequestPending = false;
      return apiResponse;
    }

    final account = apiResponse["account"];

    await methodChannel.invokeMethod('LOGIN', {
      "userName": account["username"],
      "password": account["password"],
    });

    final version =
        await methodChannel.invokeMethod('ADD_CAMERA_THROUGH_WIFI', {
      "ssid": wifiSsid,
      "password": wifiPassword,
    });

    final addResponse = await apiService.addDeviceToMasterAccount(
        version[0], account["username"]);
    // isRequestPending = false;
    if (addResponse['isError']) return addResponse;

    return {
      "isError": false,
      "message": "Camera added successfully",
      "cameraId": version[0]
    };
  } catch (e) {
    // isRequestPending = false;
    if (e is PlatformException) {
      return {"isError": true, "message": e.message};
    }

    return {"isError": true, "message": "Error: $e"};
  }
}