%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps/circles/lib/Activity/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps/circles/lib/Activity/ProviderSubjectCircleMember.php |
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Circles\Activity;
use OCA\Circles\Exceptions\FakeException;
use OCA\Circles\Model\Circle;
use OCA\Circles\Model\Member;
use OCP\Activity\IEvent;
class ProviderSubjectCircleMember extends ProviderParser {
/**
* @param IEvent $event
* @param Circle $circle
* @param Member $member
* @param string $ownEvent
* @param string $othersEvent
* @return void
*/
protected function parseMemberCircleEvent(
IEvent $event,
Circle $circle,
Member $member,
string $ownEvent,
string $othersEvent
): void {
$data = [
'author' => $this->generateViewerParameter($circle),
'circle' => $this->generateCircleParameter($circle),
'member' => $this->generateUserParameter($member),
'external' => $this->generateExternalMemberParameter($member),
'group' => $this->generateGroupParameter($member),
];
if ($this->isViewerTheAuthor($circle, $this->activityManager->getCurrentUserId())) {
$this->setSubject($event, $ownEvent, $data);
return;
}
$this->setSubject($event, $othersEvent, $data);
}
/**
* @param IEvent $event
* @param Circle $circle
* @param Member $member
* @throws FakeException
*/
public function parseSubjectCircleMemberJoin(
IEvent $event,
Circle $circle,
Member $member
): void {
if ($event->getSubject() !== 'member_circle_joined') {
return;
}
$this->parseMemberCircleEvent(
$event, $circle, $member,
$this->l10n->t('You made {member} join {circle}'),
$this->l10n->t('{author} made {member} join {circle}')
);
throw new FakeException();
}
/**
* @param IEvent $event
* @param Circle $circle
* @param Member $member
* @return void
* @throws FakeException
*/
public function parseSubjectCircleMemberAdd(
IEvent $event,
Circle $circle,
Member $member
): void {
if ($event->getSubject() !== 'member_circle_added') {
return;
}
$this->parseMemberCircleEvent(
$event, $circle, $member,
$this->l10n->t('You added team {member} as member to {circle}'),
$this->l10n->t('{author} added team {member} as member to {circle}')
);
throw new FakeException();
}
/**
* @param IEvent $event
* @param Circle $circle
* @param Member $member
* @return void
* @throws FakeException
*/
public function parseSubjectCircleMemberLeft(
IEvent $event,
Circle $circle,
Member $member
): void {
if ($event->getSubject() !== 'member_circle_left') {
return;
}
$this->parseCircleMemberEvent(
$event, $circle, $member,
$this->l10n->t('You made {member} leave {circle}'),
$this->l10n->t('{author} made {member} leave {circle}')
);
throw new FakeException();
}
/**
* @param IEvent $event
* @param Circle $circle
* @param Member $member
* @return void
* @throws FakeException
*/
public function parseSubjectCircleMemberRemove(
IEvent $event,
Circle $circle,
Member $member
): void {
if ($event->getSubject() !== 'member_circle_removed') {
return;
}
$this->parseCircleMemberEvent(
$event, $circle, $member,
$this->l10n->t('You removed {member} from {circle}'),
$this->l10n->t('{author} removed {member} from {circle}')
);
throw new FakeException();
}
}