Skip to content

Commit

Permalink
Migrate federated file sharing to PSR LoggerInterface
Browse files Browse the repository at this point in the history
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
  • Loading branch information
Altahrim committed Jul 5, 2023
1 parent 247193f commit 65ae5cf
Show file tree
Hide file tree
Showing 8 changed files with 99 additions and 285 deletions.
1 change: 0 additions & 1 deletion apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php
Expand Up @@ -30,7 +30,6 @@
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJobList;
use OCP\BackgroundJob\Job;
use OCP\ILogger;

/**
* Class RetryJob
Expand Down
Expand Up @@ -41,12 +41,12 @@
use OCP\HintException;
use OCP\Http\Client\IClientService;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
use OCP\ISession;
use OCP\IUserSession;
use OCP\Share\IManager;
use OCP\Share\IShare;
use Psr\Log\LoggerInterface;

/**
* Class MountPublicLinkController
Expand All @@ -56,31 +56,6 @@
* @package OCA\FederatedFileSharing\Controller
*/
class MountPublicLinkController extends Controller {

/** @var FederatedShareProvider */
private $federatedShareProvider;

/** @var AddressHandler */
private $addressHandler;

/** @var IManager */
private $shareManager;

/** @var ISession */
private $session;

/** @var IL10N */
private $l;

/** @var IUserSession */
private $userSession;

/** @var IClientService */
private $clientService;

/** @var ICloudIdManager */
private $cloudIdManager;

/**
* MountPublicLinkController constructor.
*
Expand All @@ -94,28 +69,22 @@ class MountPublicLinkController extends Controller {
* @param IUserSession $userSession
* @param IClientService $clientService
* @param ICloudIdManager $cloudIdManager
* @param LoggerInterface $logger
*/
public function __construct($appName,
IRequest $request,
FederatedShareProvider $federatedShareProvider,
IManager $shareManager,
AddressHandler $addressHandler,
ISession $session,
IL10N $l,
IUserSession $userSession,
IClientService $clientService,
ICloudIdManager $cloudIdManager
public function __construct(
$appName,
IRequest $request,
private FederatedShareProvider $federatedShareProvider,
private IManager $shareManager,
private AddressHandler $addressHandler,
private ISession $session,
private IL10N $l,
private IUserSession $userSession,
private IClientService $clientService,
private ICloudIdManager $cloudIdManager,
private LoggerInterface $logger,
) {
parent::__construct($appName, $request);

$this->federatedShareProvider = $federatedShareProvider;
$this->shareManager = $shareManager;
$this->addressHandler = $addressHandler;
$this->session = $session;
$this->l = $l;
$this->userSession = $userSession;
$this->clientService = $clientService;
$this->cloudIdManager = $cloudIdManager;
}

/**
Expand Down Expand Up @@ -175,9 +144,9 @@ public function createFederatedShare($shareWith, $token, $password = '') {
try {
$this->federatedShareProvider->create($share);
} catch (\Exception $e) {
\OC::$server->getLogger()->logException($e, [
'level' => ILogger::WARN,
$this->logger->warning($e->getMessage(), [
'app' => 'federatedfilesharing',
'exception' => $e,
]);
return new JSONResponse(['message' => $e->getMessage()], Http::STATUS_BAD_REQUEST);
}
Expand Down
84 changes: 17 additions & 67 deletions apps/federatedfilesharing/lib/FederatedShareProvider.php
Expand Up @@ -50,12 +50,12 @@
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IUserManager;
use OCP\Share\Exceptions\GenericShareException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IShare;
use OCP\Share\IShareProvider;
use Psr\Log\LoggerInterface;

/**
* Class FederatedShareProvider
Expand All @@ -65,45 +65,9 @@
class FederatedShareProvider implements IShareProvider {
public const SHARE_TYPE_REMOTE = 6;

/** @var IDBConnection */
private $dbConnection;

/** @var AddressHandler */
private $addressHandler;

/** @var Notifications */
private $notifications;

/** @var TokenHandler */
private $tokenHandler;

/** @var IL10N */
private $l;

/** @var ILogger */
private $logger;

/** @var IRootFolder */
private $rootFolder;

/** @var IConfig */
private $config;

/** @var string */
private $externalShareTable = 'share_external';

/** @var IUserManager */
private $userManager;

/** @var ICloudIdManager */
private $cloudIdManager;

/** @var \OCP\GlobalScale\IConfig */
private $gsConfig;

/** @var ICloudFederationProviderManager */
private $cloudFederationProviderManager;

/** @var array list of supported share types */
private $supportedShareType = [IShare::TYPE_REMOTE_GROUP, IShare::TYPE_REMOTE, IShare::TYPE_CIRCLE];

Expand All @@ -114,41 +78,29 @@ class FederatedShareProvider implements IShareProvider {
* @param AddressHandler $addressHandler
* @param Notifications $notifications
* @param TokenHandler $tokenHandler
* @param IL10N $l10n
* @param ILogger $logger
* @param IL10N $l
* @param IRootFolder $rootFolder
* @param IConfig $config
* @param IUserManager $userManager
* @param ICloudIdManager $cloudIdManager
* @param \OCP\GlobalScale\IConfig $globalScaleConfig
* @param ICloudFederationProviderManager $cloudFederationProviderManager
* @param LoggerInterface $logger
*/
public function __construct(
IDBConnection $connection,
AddressHandler $addressHandler,
Notifications $notifications,
TokenHandler $tokenHandler,
IL10N $l10n,
ILogger $logger,
IRootFolder $rootFolder,
IConfig $config,
IUserManager $userManager,
ICloudIdManager $cloudIdManager,
\OCP\GlobalScale\IConfig $globalScaleConfig,
ICloudFederationProviderManager $cloudFederationProviderManager
private IDBConnection $dbConnection,
private AddressHandler $addressHandler,
private Notifications $notifications,
private TokenHandler $tokenHandler,
private IL10N $l,
private IRootFolder $rootFolder,
private IConfig $config,
private IUserManager $userManager,
private ICloudIdManager $cloudIdManager,
private \OCP\GlobalScale\IConfig $gsConfig,
private ICloudFederationProviderManager $cloudFederationProviderManager,
private LoggerInterface $logger,
) {
$this->dbConnection = $connection;
$this->addressHandler = $addressHandler;
$this->notifications = $notifications;
$this->tokenHandler = $tokenHandler;
$this->l = $l10n;
$this->logger = $logger;
$this->rootFolder = $rootFolder;
$this->config = $config;
$this->userManager = $userManager;
$this->cloudIdManager = $cloudIdManager;
$this->gsConfig = $globalScaleConfig;
$this->cloudFederationProviderManager = $cloudFederationProviderManager;
}

/**
Expand Down Expand Up @@ -303,10 +255,9 @@ protected function createFederatedShare(IShare $share) {
$failure = true;
}
} catch (\Exception $e) {
$this->logger->logException($e, [
'message' => 'Failed to notify remote server of federated share, removing share.',
'level' => ILogger::ERROR,
$this->logger->error('Failed to notify remote server of federated share, removing share.', [
'app' => 'federatedfilesharing',
'exception' => $e,
]);
$failure = true;
}
Expand Down Expand Up @@ -873,7 +824,6 @@ public function getShareByToken($token) {
* @throws ShareNotFound
*/
private function getRawShare($id) {

// Now fetch the inserted share and create a complete share object
$qb = $this->dbConnection->getQueryBuilder();
$qb->select('*')
Expand Down
50 changes: 9 additions & 41 deletions apps/federatedfilesharing/lib/Notifications.php
Expand Up @@ -34,54 +34,22 @@
use OCP\Federation\ICloudFederationFactory;
use OCP\Federation\ICloudFederationProviderManager;
use OCP\Http\Client\IClientService;
use OCP\ILogger;
use OCP\OCS\IDiscoveryService;
use Psr\Log\LoggerInterface;

class Notifications {
public const RESPONSE_FORMAT = 'json'; // default response format for ocs calls

/** @var AddressHandler */
private $addressHandler;

/** @var IClientService */
private $httpClientService;

/** @var IDiscoveryService */
private $discoveryService;

/** @var IJobList */
private $jobList;

/** @var ICloudFederationProviderManager */
private $federationProviderManager;

/** @var ICloudFederationFactory */
private $cloudFederationFactory;

/** @var IEventDispatcher */
private $eventDispatcher;

/** @var ILogger */
private $logger;

public function __construct(
AddressHandler $addressHandler,
IClientService $httpClientService,
IDiscoveryService $discoveryService,
ILogger $logger,
IJobList $jobList,
ICloudFederationProviderManager $federationProviderManager,
ICloudFederationFactory $cloudFederationFactory,
IEventDispatcher $eventDispatcher
private AddressHandler $addressHandler,
private IClientService $httpClientService,
private IDiscoveryService $discoveryService,
private IJobList $jobList,
private ICloudFederationProviderManager $federationProviderManager,
private ICloudFederationFactory $cloudFederationFactory,
private IEventDispatcher $eventDispatcher,
private LoggerInterface $logger,
) {
$this->addressHandler = $addressHandler;
$this->httpClientService = $httpClientService;
$this->discoveryService = $discoveryService;
$this->jobList = $jobList;
$this->logger = $logger;
$this->federationProviderManager = $federationProviderManager;
$this->cloudFederationFactory = $cloudFederationFactory;
$this->eventDispatcher = $eventDispatcher;
}

/**
Expand Down

0 comments on commit 65ae5cf

Please sign in to comment.