addCameraWithSerialNumber method

  1. @override
Future<Map<String, dynamic>> addCameraWithSerialNumber(
  1. String cameraId,
  2. String cameraType
)
override

Implementation

@override
Future<Map<String, dynamic>> addCameraWithSerialNumber(
    String cameraId, String cameraType) async {
  if (isRequestPending) {
    return {
      // "isError": true,
      // "message": "PENDING_PREVIOUS_REQUEST",
      // "details": "Called addCameraWithSerialNumber()"
    };
  }
  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_SERIAL_NUMBER', {
      "cameraId": cameraId,
      "cameraType": cameraType,
    });

    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"};
  }
}