...
 
Commits (2)
......@@ -335,6 +335,7 @@ class media implements Interfaces\Api, Interfaces\ApiIgnorePam
}
// Create activity post
/** @var Core\Media\Feeds $feeds */
$feeds = Di::_()->get('Media\Feeds')->setEntity($entity);
if (
......
<?php
/**
* @author: eiennohi.
*/
namespace Minds\Core\Media\Delegates;
use Minds\Core\Data\Call;
use Minds\Entities\Image;
use Minds\Entities\Video;
class UpdateActivities
{
/** @var Call */
private $indexDb;
private $entityDb;
public function __construct($indexDb = null, $entityDb = null)
{
$this->indexDb = $indexDb ?: new Call('entities_by_time');
$this->entityDb = $entityDb ?: new Call('entities');
}
/**
* @param Image|Video $entity
*/
public function updateActivities($entity)
{
foreach ($this->indexDb->getRow("activity:entitylink:{$entity->guid}") as $guid => $ts) {
$this->entityDb->insert($guid, ['message' => $entity->title]);
$parameters = $entity->getActivityParameters();
$this->entityDb->insert($guid, ['custom_type' => $parameters[0]]);
$this->entityDb->insert($guid, ['custom_data' => json_encode($parameters[1])]);
}
}
}
<?php
namespace Minds\Core\Media;
use Minds\Core;
use Minds\Entities;
use Minds\Helpers;
use Minds\Core\Media;
class Feeds
{
private $indexDb;
private $entityDb;
private $updateActivitiesDelegate;
protected $entity;
public function __construct($indexDb, $entityDb)
public function __construct($updateActivitiesDelegate = null)
{
$this->indexDb = $indexDb;
$this->entityDb = $entityDb;
$this->updateActivitiesDelegate = $updateActivitiesDelegate ?: new Delegates\UpdateActivities();
}
public function setEntity($entity)
......@@ -54,11 +54,7 @@ class Feeds
throw new \Exception('Entity not set');
}
foreach ($this->indexDb->getRow("activity:entitylink:{$this->entity->guid}") as $guid => $ts) {
$this->entityDb->insert($guid, [ 'message' => $this->entity->title ]);
}
return true;
$this->updateActivitiesDelegate->updateActivities($this->entity);
}
public function dispatch(array $targets = [])
......
......@@ -17,7 +17,7 @@ class MediaProvider extends Provider
}, ['useFactory' => true]);
$this->di->bind('Media\Feeds', function ($di) {
return new Feeds(new Core\Data\Call('entities_by_time'), new Core\Data\Call('entities'));
return new Feeds();
}, ['useFactory' => true]);
$this->di->bind('Media\Repository', function ($di) {
......