You are here

protected function SensorDataController::createDataStream in farmOS 2.x

Helper function to create a new basic data stream associated with a sensor.

Parameters

\Drupal\asset\Entity\AssetInterface $asset: The sensor asset.

string $name: The data stream name.

Return value

\Drupal\Core\Entity\EntityInterface The new data stream.

1 call to SensorDataController::createDataStream()
SensorDataController::handleAssetRequest in modules/asset/sensor/src/Controller/SensorDataController.php
Helper function to handle the request once the asset has been loaded.

File

modules/asset/sensor/src/Controller/SensorDataController.php, line 221

Class

SensorDataController
Handles requests for basic data streams associated with a sensor.

Namespace

Drupal\farm_sensor\Controller

Code

protected function createDataStream(AssetInterface $asset, string $name) {

  // Create new data stream.
  $new_data_stream = $this
    ->entityTypeManager()
    ->getStorage('data_stream')
    ->create([
    'type' => 'basic',
    'name' => $name,
  ]);
  $new_data_stream
    ->save();

  // Assign to the host sensor asset.

  /** @var \Drupal\Core\Field\EntityReferenceFieldItemList $data_stream_field */
  $data_stream_field = $asset
    ->get('data_stream');
  $data_stream_field
    ->appendItem($new_data_stream);
  $asset
    ->save();
  return $new_data_stream;
}