. */ namespace SP\Services\Account; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use SP\Core\Exceptions\ConstraintException; use SP\Core\Exceptions\QueryException; use SP\Repositories\Account\AccountToFavoriteRepository; use SP\Services\Service; /** * Class AccountFavoriteService * * @package SP\Services\Account */ final class AccountToFavoriteService extends Service { /** * @var AccountToFavoriteRepository */ protected $accountFavoriteRepository; /** * Obtener un array con los Ids de cuentas favoritas * * @param $id int El Id de usuario * * @return array * @throws ConstraintException * @throws QueryException */ public function getForUserId($id) { return $this->accountFavoriteRepository->getForUserId($id)->getDataAsArray(); } /** * Añadir una cuenta a la lista de favoritos * * @param $accountId int El Id de la cuenta * @param $userId int El Id del usuario * * @return bool * @throws ConstraintException * @throws QueryException */ public function add($accountId, $userId) { return $this->accountFavoriteRepository->add($accountId, $userId); } /** * Eliminar una cuenta de la lista de favoritos * * @param $accountId int El Id de la cuenta * @param $userId int El Id del usuario * * @return int * @throws ConstraintException * @throws QueryException */ public function delete($accountId, $userId) { return $this->accountFavoriteRepository->delete($accountId, $userId); } /** * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ protected function initialize() { $this->accountFavoriteRepository = $this->dic->get(AccountToFavoriteRepository::class); } }