Port away from private OC::$server->get

And fix a few psalm issues

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
pull/1415/head
Carl Schwan 2022-05-11 18:22:54 +02:00
rodzic cf2b099dd4
commit 637924a13f
14 zmienionych plików z 152 dodań i 249 usunięć

12
composer.lock wygenerowano
Wyświetl plik

@ -323,12 +323,12 @@
"source": {
"type": "git",
"url": "https://github.com/ChristophWurst/nextcloud_composer.git",
"reference": "5e2c78469a4f669ed11016cf8a6668792efcbedf"
"reference": "5e9719488fe558db974ef45f289a6911fe2c6850"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ChristophWurst/nextcloud_composer/zipball/5e2c78469a4f669ed11016cf8a6668792efcbedf",
"reference": "5e2c78469a4f669ed11016cf8a6668792efcbedf",
"url": "https://api.github.com/repos/ChristophWurst/nextcloud_composer/zipball/5e9719488fe558db974ef45f289a6911fe2c6850",
"reference": "5e9719488fe558db974ef45f289a6911fe2c6850",
"shasum": ""
},
"require": {
@ -341,7 +341,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "24.0.0-dev"
"dev-master": "25.0.0-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
@ -359,7 +359,7 @@
"issues": "https://github.com/ChristophWurst/nextcloud_composer/issues",
"source": "https://github.com/ChristophWurst/nextcloud_composer/tree/master"
},
"time": "2022-04-15T01:52:26+00:00"
"time": "2022-05-11T02:03:08+00:00"
},
{
"name": "composer/package-versions-deprecated",
@ -4999,5 +4999,5 @@
"platform-overrides": {
"php": "7.4.0"
},
"plugin-api-version": "2.3.0"
"plugin-api-version": "2.2.0"
}

Wyświetl plik

@ -32,7 +32,6 @@ declare(strict_types=1);
namespace OCA\Social;
use daita\MySmallPhpTools\Traits\TArrayTools;
use OC;
use OCA\Social\Exceptions\ItemUnknownException;
use OCA\Social\Exceptions\RedundancyLimitException;
use OCA\Social\Exceptions\SocialAppConfigException;
@ -84,6 +83,8 @@ use OCA\Social\Model\ActivityPub\Object\Tombstone;
use OCA\Social\Model\ActivityPub\Stream;
use OCA\Social\Service\ConfigService;
use OCP\AppFramework\QueryException;
use OCP\Server;
use Psr\Log\LoggerInterface;
/**
* Class AP
@ -93,123 +94,92 @@ use OCP\AppFramework\QueryException;
class AP {
use TArrayTools;
public const REDUNDANCY_LIMIT = 10;
public AcceptInterface $acceptInterface;
public AddInterface $addInterface;
public AnnounceInterface $announceInterface;
public BlockInterface $blockInterface;
public CreateInterface $createInterface;
public DeleteInterface $deleteInterface;
public DocumentInterface $documentInterface;
public FollowInterface $followInterface;
public ImageInterface $imageInterface;
public LikeInterface $likeInterface;
public PersonInterface $personInterface;
public NoteInterface $noteInterface;
public GroupInterface $groupInterface;
public OrganizationInterface $organizationInterface;
public ApplicationInterface $applicationInterface;
public RejectInterface $rejectInterface;
public RemoveInterface $removeInterface;
public ServiceInterface $serviceInterface;
public UndoInterface $undoInterface;
public UpdateInterface $updateInterface;
public SocialAppNotificationInterface $notificationInterface;
public ConfigService $configService;
public static ?AP $activityPub = null;
private SocialAppNotificationInterface $socialAppNotificationInterface;
/** @var AcceptInterface */
public $acceptInterface;
/** @var AddInterface */
public $addInterface;
/** @var AnnounceInterface */
public $announceInterface;
/** @var BlockInterface */
public $blockInterface;
/** @var CreateInterface */
public $createInterface;
/** @var DeleteInterface */
public $deleteInterface;
/** @var DocumentInterface */
public $documentInterface;
/** @var FollowInterface */
public $followInterface;
/** @var ImageInterface */
public $imageInterface;
/** @var LikeInterface */
public $likeInterface;
/** @var PersonInterface */
public $personInterface;
/** @var NoteInterface */
public $noteInterface;
/** @var RejectInterface */
public $rejectInterface;
/** @var RemoveInterface */
public $removeInterface;
/** @var ServiceInterface */
public $serviceInterface;
/** @var UndoInterface */
public $undoInterface;
/** @var UpdateInterface */
public $updateInterface;
/** @var SocialAppNotificationInterface */
public $notificationInterface;
/** @var ConfigService */
public $configService;
/** @var AP */
public static $activityPub = null;
/**
* AP constructor.
*/
public function __construct() {
public function __construct(
AcceptInterface $acceptInterface,
AddInterface $addInterface,
AnnounceInterface $announceInterface,
BlockInterface $blockInterface,
CreateInterface $createInterface,
DeleteInterface $deleteInterface,
DocumentInterface $documentInterface,
FollowInterface $followInterface,
ImageInterface $imageInterface,
LikeInterface $likeInterface,
NoteInterface $noteInterface,
SocialAppNotificationInterface $socialAppNotificationInterface,
PersonInterface $personInterface,
ServiceInterface $serviceInterface,
GroupInterface $groupInterface,
OrganizationInterface $organizationInterface,
ApplicationInterface $applicationInterface,
RejectInterface $rejectInterface,
RemoveInterface $removeInterface,
UndoInterface $undoInterface,
UpdateInterface $updateInterface,
ConfigService $configService
) {
$this->acceptInterface = $acceptInterface;
$this->addInterface = $addInterface;
$this->announceInterface = $announceInterface;
$this->blockInterface = $blockInterface;
$this->createInterface = $createInterface;
$this->deleteInterface = $deleteInterface;
$this->documentInterface = $documentInterface;
$this->followInterface = $followInterface;
$this->imageInterface = $imageInterface;
$this->likeInterface = $likeInterface;
$this->noteInterface = $noteInterface;
$this->socialAppNotificationInterface = $socialAppNotificationInterface;
$this->personInterface = $personInterface;
$this->serviceInterface = $serviceInterface;
$this->groupInterface = $groupInterface;
$this->organizationInterface = $organizationInterface;
$this->applicationInterface = $applicationInterface;
$this->rejectInterface = $rejectInterface;
$this->removeInterface = $removeInterface;
$this->undoInterface = $undoInterface;
$this->updateInterface = $updateInterface;
$this->configService = $configService;
}
/**
*
*/
public static function init() {
$ap = new AP();
try {
$ap->acceptInterface = OC::$server->query(AcceptInterface::class);
$ap->addInterface = OC::$server->query(AddInterface::class);
$ap->announceInterface = OC::$server->query(AnnounceInterface::class);
$ap->blockInterface = OC::$server->query(BlockInterface::class);
$ap->createInterface = OC::$server->query(CreateInterface::class);
$ap->deleteInterface = OC::$server->query(DeleteInterface::class);
$ap->documentInterface = OC::$server->query(DocumentInterface::class);
$ap->followInterface = OC::$server->query(FollowInterface::class);
$ap->imageInterface = OC::$server->query(ImageInterface::class);
$ap->likeInterface = OC::$server->query(LikeInterface::class);
$ap->noteInterface = OC::$server->query(NoteInterface::class);
$ap->notificationInterface = OC::$server->query(SocialAppNotificationInterface::class);
$ap->personInterface = OC::$server->query(PersonInterface::class);
$ap->serviceInterface = OC::$server->query(ServiceInterface::class);
$ap->groupInterface = OC::$server->query(GroupInterface::class);
$ap->groupInterface = OC::$server->query(OrganizationInterface::class);
$ap->groupInterface = OC::$server->query(ApplicationInterface::class);
$ap->rejectInterface = OC::$server->query(RejectInterface::class);
$ap->removeInterface = OC::$server->query(RemoveInterface::class);
$ap->undoInterface = OC::$server->query(UndoInterface::class);
$ap->updateInterface = OC::$server->query(UpdateInterface::class);
$ap->configService = OC::$server->query(ConfigService::class);
AP::$activityPub = $ap;
AP::$activityPub = Server::get(AP::class);
} catch (QueryException $e) {
OC::$server->getLogger()
->logException($e);
Server::get(LoggerInterface::class)
->errir($e->getMessage(), ['exception' => $e]);
}
}
/**
* @param array $data
* @param ACore $parent
* @param int $level
*
* @return ACore
* @throws RedundancyLimitException
* @throws SocialAppConfigException
* @throws ItemUnknownException
@ -232,10 +202,6 @@ class AP {
/**
* @param array $data
* @param ACore $item
* @param int $level
*
* @throws RedundancyLimitException
* @throws SocialAppConfigException
*/
@ -258,10 +224,6 @@ class AP {
/**
* @param array $data
* @param ACore $item
* @param int $level
*
* @throws RedundancyLimitException
* @throws SocialAppConfigException
*/
@ -279,9 +241,6 @@ class AP {
/**
* @param array $data
*
* @return ACore
* @throws SocialAppConfigException
* @throws ItemUnknownException
*/
@ -425,103 +384,75 @@ class AP {
public function getInterfaceFromType(string $type): IActivityPubInterface {
switch ($type) {
case Accept::TYPE:
$interface = $this->acceptInterface;
break;
return $this->acceptInterface;
case Add::TYPE:
$interface = $this->addInterface;
break;
return $this->addInterface;
case Announce::TYPE:
$interface = $this->announceInterface;
break;
return $this->announceInterface;
case Block::TYPE:
$interface = $this->blockInterface;
break;
return $this->blockInterface;
case Create::TYPE:
$interface = $this->createInterface;
break;
return $this->createInterface;
case Delete::TYPE:
$interface = $this->deleteInterface;
break;
return $this->deleteInterface;
case Document::TYPE:
$interface = $this->documentInterface;
break;
return $this->documentInterface;
case Follow::TYPE:
$interface = $this->followInterface;
break;
return $this->followInterface;
case Image::TYPE:
$interface = $this->imageInterface;
break;
return $this->imageInterface;
case Like::TYPE:
$interface = $this->likeInterface;
break;
return $this->likeInterface;
case Note::TYPE:
$interface = $this->noteInterface;
break;
return $this->noteInterface;
case SocialAppNotification::TYPE:
$interface = $this->notificationInterface;
break;
return $this->notificationInterface;
case Person::TYPE:
$interface = $this->personInterface;
break;
return $this->personInterface;
case Reject::TYPE:
$interface = $this->rejectInterface;
break;
return $this->rejectInterface;
case Remove::TYPE:
$interface = $this->removeInterface;
break;
return $this->removeInterface;
case Service::TYPE:
$interface = $this->serviceInterface;
break;
return $this->serviceInterface;
case Undo::TYPE:
$interface = $this->undoInterface;
break;
return $this->undoInterface;
case Update::TYPE:
$interface = $this->updateInterface;
break;
return $this->updateInterface;
default:
throw new ItemUnknownException();
}
return $interface;
}
/**
* @param ACore $item
*
* @return bool
*/
public function isActor(ACore $item): bool {
$types =
[
Person::TYPE,
Service::TYPE,
Group::TYPE,
Organization::TYPE,
Application::TYPE
];
$types = [
Person::TYPE,
Service::TYPE,
Group::TYPE,
Organization::TYPE,
Application::TYPE
];
return (in_array($item->getType(), $types));
}
}
AP::init();

Wyświetl plik

@ -34,7 +34,6 @@ namespace OCA\Social\Controller;
use daita\MySmallPhpTools\Traits\Nextcloud\TNCDataResponse;
use daita\MySmallPhpTools\Traits\TArrayTools;
use Exception;
use OC;
use OCP\AppFramework\Http;
use OC\User\NoUserException;
use OCA\Social\AppInfo\Application;
@ -55,6 +54,8 @@ use OCP\IInitialStateService;
use OCP\IL10N;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IGroupManager;
use OCP\Server;
/**
* Class NavigationController
@ -119,7 +120,7 @@ class NavigationController extends Controller {
'public' => false,
'firstrun' => false,
'setup' => false,
'isAdmin' => OC::$server->getGroupManager()
'isAdmin' => Server::get(IGroupManager::class)
->isAdmin($this->userId),
'cliUrl' => $this->getCliUrl()
];

Wyświetl plik

@ -211,6 +211,7 @@ class OAuthController extends Controller {
// TODO : finalize result if no redirect_url
return new DataResponse(
[
'code' => $code,
// 'access_token' => '',
// "token_type" => "Bearer",
// "scope" => "read write follow push",

Wyświetl plik

@ -34,7 +34,6 @@ namespace OCA\Social\Cron;
use Exception;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
use OCA\Social\AppInfo\Application;
use OCA\Social\Service\AccountService;
use OCA\Social\Service\CacheActorService;
use OCA\Social\Service\DocumentService;
@ -47,36 +46,26 @@ use OCP\AppFramework\QueryException;
* @package OCA\Social\Cron
*/
class Cache extends TimedJob {
private ?AccountService $accountService = null;
private ?CacheActorService $cacheActorService = null;
private ?DocumentService $documentService = null;
private ?HashtagService $hashtagService = null;
private AccountService $accountService;
private CacheActorService $cacheActorService;
private DocumentService $documentService;
private HashtagService $hashtagService;
public function __construct(ITimeFactory $time) {
public function __construct(ITimeFactory $time, AccountService $accountService, CacheActorService $cacheActorService, DocumentService $documentService, HashtagService $hashtagService) {
parent::__construct($time);
$this->setInterval(12 * 60); // 12 minutes
$this->accountService = $accountService;
$this->cacheActorService = $cacheActorService;
$this->documentService = $documentService;
$this->hashtagService = $hashtagService;
}
/**
* @param mixed $argument
*
* @throws QueryException
*/
protected function run($argument) {
$app = \OC::$server->get(Application::class);
$c = $app->getContainer();
$this->accountService = $c->get(AccountService::class);
$this->cacheActorService = $c->get(CacheActorService::class);
$this->documentService = $c->get(DocumentService::class);
$this->hashtagService = $c->get(HashtagService::class);
$this->manageCache();
}
private function manageCache() {
try {
$this->accountService->blindKeyRotation();
} catch (Exception $e) {

Wyświetl plik

@ -33,7 +33,6 @@ namespace OCA\Social\Cron;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
use OCA\Social\AppInfo\Application;
use OCA\Social\Service\ConfigService;
use OCP\AppFramework\QueryException;
@ -43,11 +42,12 @@ use OCP\AppFramework\QueryException;
* @package OCA\Social\Cron
*/
class Chunk extends TimedJob {
private ?ConfigService $configService = null;
private ConfigService $configService;
public function __construct(ITimeFactory $time) {
public function __construct(ITimeFactory $time, ConfigService $configService) {
parent::__construct($time);
$this->setInterval(12 * 3600); // 12 hours
$this->configService = $configService;
}
@ -57,11 +57,6 @@ class Chunk extends TimedJob {
* @throws QueryException
*/
protected function run($argument) {
$app = \OC::$server->query(Application::class);
$c = $app->getContainer();
$this->configService = $c->query(ConfigService::class);
$size = (int)$this->configService->getAppValue(ConfigService::DATABASE_CHUNK_SIZE);
$this->morphChunks($size);
}
@ -70,6 +65,6 @@ class Chunk extends TimedJob {
/**
* @param int $size
*/
private function morphChunks(int $size) {
private function morphChunks(int $size): void {
}
}

Wyświetl plik

@ -33,7 +33,6 @@ namespace OCA\Social\Cron;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
use OCA\Social\AppInfo\Application;
use OCA\Social\Exceptions\SocialAppConfigException;
use OCA\Social\Service\ActivityService;
use OCA\Social\Service\RequestQueueService;
@ -46,16 +45,19 @@ use OCP\AppFramework\QueryException;
* @package OCA\Social\Cron
*/
class Queue extends TimedJob {
private ?ActivityService $activityService = null;
private ?RequestQueueService $requestQueueService = null;
private ?StreamQueueService $streamQueueService = null;
private ActivityService $activityService;
private RequestQueueService $requestQueueService;
private StreamQueueService $streamQueueService;
/**
* Cache constructor.
*/
public function __construct(ITimeFactory $time) {
public function __construct(ITimeFactory $time, RequestQueueService $requestQueueService, StreamQueueService $streamQueueService, ActivityService $activityService) {
parent::__construct($time);
$this->setInterval(12 * 60); // 12 minutes
$this->requestQueueService = $requestQueueService;
$this->streamQueueService = $streamQueueService;
$this->activityService = $activityService;
}
@ -65,14 +67,6 @@ class Queue extends TimedJob {
* @throws QueryException
*/
protected function run($argument) {
/** @var Application $app */
$app = \OC::$server->get(Application::class);
$c = $app->getContainer();
$this->requestQueueService = $c->get(RequestQueueService::class);
$this->streamQueueService = $c->get(StreamQueueService::class);
$this->activityService = $c->get(ActivityService::class);
$this->manageRequestQueue();
$this->manageStreamQueue();
}

Wyświetl plik

@ -55,8 +55,7 @@ class InstancesRequest extends InstancesRequestBuilder {
$qb = $this->getInstanceInsertSql();
$qb->setValue('uri', $qb->createNamedParameter($instance->getUri()));
$qb->execute();
$qb->executeStatement();
}

Wyświetl plik

@ -34,7 +34,9 @@ namespace OCA\Social\Db;
use daita\MySmallPhpTools\Traits\TStringTools;
use OCA\Social\Model\ActivityPub\Object\Note;
use OCA\Social\Model\ActivityPub\Stream;
use OCP\Server;
use OCP\DB\Exception as DBException;
use Psr\Log\LoggerInterface;
/**
* Class StreamTagsRequest
@ -58,7 +60,7 @@ class StreamTagsRequest extends StreamTagsRequestBuilder {
try {
$qb->executeStatement();
} catch (DBException $e) {
\OC::$server->getLogger()
Server::get(LoggerInterface::class)
->log(1, 'Social - Duplicate hashtag on Stream ' . json_encode($stream));
}
}

Wyświetl plik

@ -40,14 +40,10 @@ use OCA\Social\Model\Instance;
class InstanceService {
use TArrayTools;
private $instancesRequest;
private InstancesRequest$instancesRequest;
private ConfigService $configService;
private MiscService $miscService;
public function __construct(
InstancesRequest $instancesRequest, ConfigService $configService, MiscService $miscService
) {

Wyświetl plik

@ -53,18 +53,12 @@ class PushService {
use TAsync;
private DetailsService $detailsService;
private StreamService $streamService;
private MiscService $miscService;
/**
* PushService constructor.
*
* @param DetailsService $detailsService
* @param StreamService $streamService
* @param MiscService $miscService
*/
public function __construct(
DetailsService $detailsService, StreamService $streamService, MiscService $miscService

Wyświetl plik

@ -42,7 +42,6 @@ use daita\MySmallPhpTools\Traits\TArrayTools;
use DateTime;
use Exception;
use JsonLdException;
use OC;
use OCA\Social\AppInfo\Application;
use OCA\Social\Db\ActorsRequest;
use OCA\Social\Exceptions\ActorDoesNotExistException;
@ -59,11 +58,13 @@ use OCA\Social\Model\ActivityPub\ACore;
use OCA\Social\Model\ActivityPub\Actor\Person;
use OCA\Social\Model\LinkedDataSignature;
use OCA\Social\Model\RequestQueue;
use OCP\Files\AppData\IFactory;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\Files\SimpleFS\ISimpleFile;
use OCP\Files\SimpleFS\ISimpleFolder;
use OCP\IRequest;
use OCP\Server;
use stdClass;
class SignatureService {
@ -573,7 +574,7 @@ class SignatureService {
private static function getContextCacheFolder(): ISimpleFolder {
$path = 'context';
$appData = OC::$server->getAppDataDir(Application::APP_NAME);
$appData = Server::get(IFactory::class)->get(Application::APP_NAME);
try {
$folder = $appData->getFolder($path);
} catch (NotFoundException $e) {

Wyświetl plik

@ -31,20 +31,20 @@ namespace OCA\Social;
use OCA\Social\Exceptions\SocialAppConfigException;
use Exception;
use OC;
use OCP\Server;
use OCA\Social\Service\ConfigService;
use OCA\Social\Service\FediverseService;
use Psr\Log\LoggerInterface;
require_once(__DIR__ . '/../vendor/autoload.php');
try {
$fediverseService = OC::$server->query(FediverseService::class);
$fediverseService = Server::get(FediverseService::class);
/** @var ConfigService $configService */
$configService = OC::$server->query(ConfigService::class);
$configService = Server::get(ConfigService::class);
$fediverseService->jailed();
} catch (Exception $e) {
OC::$server->getLogger()
->log(1, 'Exception on hostmeta - ' . $e->getMessage());
Server::get(LoggerInterface::class)->log(1, 'Exception on hostmeta - ' . $e->getMessage());
http_response_code(404);
exit;
}

Wyświetl plik

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="4.22.0@fc2c6ab4d5fa5d644d8617089f012f3bb84b8703">
<files psalm-version="4.23.0@f1fe6ff483bf325c803df9f510d09a03fd796f88">
<file src="lib/AP.php">
<InvalidScalarArgument occurrences="1">
<code>$level</code>
</InvalidScalarArgument>
<UndefinedPropertyAssignment occurrences="3">
<code>$ap-&gt;groupInterface</code>
<code>$ap-&gt;groupInterface</code>
<code>$ap-&gt;groupInterface</code>
</UndefinedPropertyAssignment>
</file>
<file src="lib/Db/CoreRequestBuilder.php">
<UndefinedVariable occurrences="1">
<code>$schema</code>
</UndefinedVariable>
</file>
<file src="lib/Migration/Version0003Date20200823023900.php">
<UndefinedDocblockClass occurrences="1">
@ -137,9 +137,9 @@
<RedundantCondition occurrences="1">
<code>$varr[0] !== null</code>
</RedundantCondition>
<UndefinedInterfaceMethod occurrences="1">
<code>getAppDataDir</code>
</UndefinedInterfaceMethod>
<UndefinedClass occurrences="1">
<code>IFactory</code>
</UndefinedClass>
</file>
<file src="lib/Service/StreamService.php">
<InvalidReturnType occurrences="1">