/**
* Subscribe $user to a given $object
*
* @param User $user
* @param ProjectObject $object
* @return boolean
*/
function subscribe($user, $object)
{
if (!$object->can_have_subscribers) {
return new InvalidParamError('$object', $object, '$object does not support subscribers', true);
}
// if
if (Subscriptions::isSubscribed($user, $object, false)) {
return true;
}
// if
$subscription = new Subscription();
$subscription->setUserId($user->getId());
$subscription->setParentId($object->getId());
$save = $subscription->save();
if ($save && !is_error($save)) {
Subscriptions::dropUserCache($user);
return true;
}
// if
return $save;
}