Skip to content

Commit

Permalink
Minor bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
GaziYucel committed Feb 27, 2024
1 parent ca59eb6 commit da5b7ae
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 54 deletions.
4 changes: 4 additions & 0 deletions classes/External/ApiAbstract.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ public function apiRequest(string $method, string $url, array $options): array
{
if ($method !== 'POST' && $method !== 'GET') return [];

$response = null;
$result = null;

try {
$response = $this->httpClient->request($method, $url, $options);

Expand All @@ -67,6 +70,7 @@ public function apiRequest(string $method, string $url, array $options): array
return $result;

} catch (GuzzleException $e) {
LogHelper::logDebug([$method, $url, $options, $response, $result]);
error_log(__METHOD__ . ' ' . $e->getMessage());
}

Expand Down
2 changes: 1 addition & 1 deletion classes/External/OpenAlex/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,6 @@ public function getWork(string $doi): array
{
if(empty($doi)) return [];

return $this->apiRequest('GET', '/' . 'works/doi:' . $doi, []);
return $this->apiRequest('GET', $this->url . '/works/doi:' . $doi, []);
}
}
4 changes: 2 additions & 2 deletions classes/External/Wikidata/Deposit.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public function execute(Context $context,
foreach ($publication->getData('authors') as $id => $authorLC) {
/* @var Author $authorLC */
$author = (array)$authorLC;
$metadata = json_decode($author['_data'][CitationManagerPlugin::CITATION_MANAGER_METADATA_AUTHOR], true);
$metadata = json_decode($authorLC->getData(CitationManagerPlugin::CITATION_MANAGER_METADATA_AUTHOR), true);
$metadata = ClassHelper::getClassWithValuesAssigned(new MetadataAuthor(), $metadata);
if (empty($metadata)) $metadata = new MetadataAuthor();
$author['_data'][CitationManagerPlugin::CITATION_MANAGER_METADATA_AUTHOR] = $metadata;
Expand All @@ -114,7 +114,7 @@ public function execute(Context $context,
/* @var CitationModel $citation */
$citation = Classhelper::getClassWithValuesAssigned(new CitationModel(), $citations[$i]);

if (empty($citation->wikidata_id))
if ($citation->isProcessed && empty($citation->wikidata_id))
$citation->wikidata_id = $this->processCitedArticle($locale, $citation);

$citations[$i] = $citation;
Expand Down
8 changes: 5 additions & 3 deletions classes/Handlers/DepositHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
use APP\plugins\generic\citationManager\classes\Db\PluginDAO;
use APP\plugins\generic\citationManager\classes\External\OpenCitations\Deposit as OpenCitationsDeposit;
use APP\plugins\generic\citationManager\classes\External\Wikidata\Deposit as WikidataDeposit;
use Application;
use APP\core\Application;
use Exception;
use PKP\plugins\PluginRegistry;

class DepositHandler
{
Expand All @@ -38,9 +39,10 @@ class DepositHandler
/** @var array|null */
private ?array $authors = [];

/** @param CitationManagerPlugin $plugin */
public function __construct(CitationManagerPlugin $plugin)
public function __construct()
{
/** @var CitationManagerPlugin $plugin */
$plugin = PluginRegistry::getPlugin('generic', strtolower(CITATION_MANAGER_PLUGIN_NAME));
$this->plugin = $plugin;
}

Expand Down
12 changes: 3 additions & 9 deletions classes/Handlers/PluginAPIHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import('lib.pkp.classes.security.authorization.PolicySet');
import('lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');

use APP\plugins\generic\citationManager\CitationManagerPlugin;
use APP\plugins\generic\citationManager\classes\DataModels\Metadata\MetadataPublication;
use APP\plugins\generic\citationManager\classes\Helpers\ClassHelper;
use APIResponse;
Expand All @@ -29,9 +28,6 @@

class PluginAPIHandler extends APIHandler
{
/** @var CitationManagerPlugin */
protected CitationManagerPlugin $plugin;

/** @var array Structure of the response body */
private array $responseBody = [
'status' => 'ok',
Expand All @@ -45,10 +41,8 @@ class PluginAPIHandler extends APIHandler

private array $roles = [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT, Role::ROLE_ID_REVIEWER, Role::ROLE_ID_AUTHOR];

/** @param CitationManagerPlugin $plugin */
public function __construct(CitationManagerPlugin $plugin)
public function __construct()
{
$this->plugin = $plugin;
$this->_handlerPath = CITATION_MANAGER_PLUGIN_NAME;

// Configure API endpoints
Expand Down Expand Up @@ -107,7 +101,7 @@ public function process(SlimRequest $slimRequest, APIResponse $response, array $
if (empty($submissionId) || empty($publicationId) || empty($citationsRaw))
return $response->withJson($this->responseBody, 200);

$process = new ProcessHandler($this->plugin);
$process = new ProcessHandler();
$process->execute($submissionId, $publicationId, $citationsRaw);

$this->responseBody['message-type'] = 'process';
Expand Down Expand Up @@ -143,7 +137,7 @@ public function deposit(SlimRequest $slimRequest, APIResponse $response, array $
if (empty($submissionId) || empty($publicationId) || empty($publicationMetadata) || empty($citations))
return $response->withJson($this->responseBody, 200);

$depositor = new DepositHandler($this->plugin);
$depositor = new DepositHandler();
$depositor->execute(
$submissionId,
$publicationId,
Expand Down
8 changes: 5 additions & 3 deletions classes/Handlers/ProcessHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
use APP\plugins\generic\citationManager\classes\PID\Handle;
use APP\plugins\generic\citationManager\classes\PID\Url;
use APP\plugins\generic\citationManager\classes\PID\Urn;
use Application;
use APP\core\Application;
use PKP\plugins\PluginRegistry;
use Publication;
use Submission;
use Exception;
Expand All @@ -37,9 +38,10 @@ class ProcessHandler
/** @var array|null [ { CitationModel }, ... ] */
private ?array $citations = null;

/** @param CitationManagerPlugin $plugin */
public function __construct(CitationManagerPlugin $plugin)
public function __construct()
{
/** @var CitationManagerPlugin $plugin */
$plugin = PluginRegistry::getPlugin('generic', strtolower(CITATION_MANAGER_PLUGIN_NAME));
$this->plugin = $plugin;
}

Expand Down
11 changes: 9 additions & 2 deletions classes/Helpers/ClassHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class ClassHelper
{
/**
* Get public properties of an object and assign null values.
*
* @param object $class The object for which properties are retrieved and assigned null values.
* @return array An associative array with property names as keys and null values.
*/
Expand All @@ -29,6 +30,7 @@ public static function getClassAsArrayNullAssigned(object $class): array

/**
* Get public properties of an object and assign provided values.
*
* @param object $class The object for which properties are retrieved and values assigned.
* @param ?array $values An associative array with property names as keys and corresponding values.
* @return array An associative array with property names as keys and assigned values.
Expand All @@ -53,12 +55,15 @@ public static function getClassAsArrayWithValuesAssigned(object $class, ?array $

/**
* Get a class instance with public properties assigned values.
*
* @param object $class The class instance to be populated.
* @param array $values An associative array with property names as keys and corresponding values.
* @param array|null $values An associative array with property names as keys and corresponding values.
* @return object An instance of the class with properties assigned values.
*/
public static function getClassWithValuesAssigned(object $class, array $values): object
public static function getClassWithValuesAssigned(object $class, ?array $values): object
{
if(empty($values)) return new $class();

$object = new $class();

$reflect = new ReflectionClass($class);
Expand All @@ -75,6 +80,7 @@ public static function getClassWithValuesAssigned(object $class, array $values):

/**
* Get public properties of an object as an array
*
* @param object $class The object for which properties are retrieved.
* @return array A with property names as keys.
*/
Expand All @@ -94,6 +100,7 @@ public static function getClassPropertiesAsArray(object $class): array

/**
* Get class public properties as a csv, e.g. "id","title","pub_date"
*
* @param object $class
* @return string
*/
Expand Down
23 changes: 7 additions & 16 deletions classes/ScheduledTasks/DepositTask.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,42 +12,33 @@

namespace APP\plugins\generic\citationManager\classes\ScheduledTasks;

// import('lib.pkp.classes.scheduledTask.ScheduledTask');

use APP\plugins\generic\citationManager\CitationManagerPlugin;
use APP\plugins\generic\citationManager\classes\Handlers\DepositHandler;
use PluginRegistry;
use ScheduledTask;
use ScheduledTaskHelper;
use PKP\plugins\PluginRegistry;
use PKP\scheduledTask\ScheduledTask;
use PKP\scheduledTask\ScheduledTaskHelper;

class DepositTask extends ScheduledTask
{
/** @var CitationManagerPlugin */
var CitationManagerPlugin $plugin;

/** @copydoc ScheduledTask::__construct */
function __construct($args)
{
$plugin = PluginRegistry::getPlugin('generic', strtolower(CITATION_MANAGER_PLUGIN_NAME));

/** @var CitationManagerPlugin $plugin */
$this->plugin = $plugin;

parent::__construct($args);
}

/** @copydoc ScheduledTask::executeActions() */
public function executeActions(): bool
{
$plugin = $this->plugin;
/** @var \APP\plugins\generic\citationManager\CitationManagerPlugin $plugin */
$plugin = PluginRegistry::getPlugin('generic', strtolower(CITATION_MANAGER_PLUGIN_NAME));

if (!$plugin->getEnabled()) {
$this->addExecutionLogEntry(
__METHOD__ . '->pluginEnabled=false [' . date('Y-m-d H:i:s') . ']',
ScheduledTaskHelper::SCHEDULED_TASK_MESSAGE_TYPE_WARNING);
return false;
}

$depositor = new DepositHandler($this->plugin);
$depositor = new DepositHandler();
$result = $depositor->batchExecute();

if (!$result) {
Expand Down
22 changes: 7 additions & 15 deletions classes/ScheduledTasks/ProcessTask.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,41 +12,33 @@

namespace APP\plugins\generic\citationManager\classes\ScheduledTasks;

import('lib.pkp.classes.scheduledTask.ScheduledTask');

use APP\plugins\generic\citationManager\CitationManagerPlugin;
use APP\plugins\generic\citationManager\classes\Handlers\ProcessHandler;
use PluginRegistry;
use ScheduledTask;
use ScheduledTaskHelper;
use PKP\plugins\PluginRegistry;
use PKP\scheduledTask\ScheduledTask;
use PKP\scheduledTask\ScheduledTaskHelper;

class ProcessTask extends ScheduledTask
{
/** @var CitationManagerPlugin */
var CitationManagerPlugin $plugin;

/** @copydoc ScheduledTask::__construct */
function __construct($args)
{
/* @var CitationManagerPlugin $plugin */
$plugin = PluginRegistry::getPlugin('generic', strtolower(CITATION_MANAGER_PLUGIN_NAME));
$this->plugin = $plugin;

parent::__construct($args);
}

/** @copydoc ScheduledTask::executeActions() */
public function executeActions(): bool
{
$plugin = $this->plugin;
/** @var \APP\plugins\generic\citationManager\CitationManagerPlugin $plugin */
$plugin = PluginRegistry::getPlugin('generic', strtolower(CITATION_MANAGER_PLUGIN_NAME));

if (!$plugin->getEnabled()) {
$this->addExecutionLogEntry(
__METHOD__ . '->pluginEnabled=false [' . date('Y-m-d H:i:s') . ']',
ScheduledTaskHelper::SCHEDULED_TASK_MESSAGE_TYPE_WARNING);
return false;
}

$process = new ProcessHandler($this->plugin);
$process = new ProcessHandler();
$result = $process->batchExecute();

if (!$result) {
Expand Down
4 changes: 2 additions & 2 deletions classes/Settings/Manage.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public function execute($args, $request): JSONMessage
$form->initData();
return new JSONMessage(true, $form->fetch($request));
case 'batch_process':
$process = new ProcessHandler($this->plugin);
$process = new ProcessHandler();
$process->batchExecute();
$notificationManager = new NotificationManager();
$notificationManager->createTrivialNotification(
Expand All @@ -62,7 +62,7 @@ public function execute($args, $request): JSONMessage
array('contents' => __('plugins.generic.citationManager.settings.process.notification')));
return DAO::getDataChangedEvent();
case 'batch_deposit':
$deposit = new DepositHandler($this->plugin);
$deposit = new DepositHandler();
$deposit->batchExecute();
$notificationManager = new NotificationManager();
$notificationManager->createTrivialNotification(
Expand Down
2 changes: 1 addition & 1 deletion classes/Workflow/WorkflowTab.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public function execute(string $hookName, array $args): void
foreach ($publication->getData('authors') as $id => $authorLC) {
/* @var Author $authorLC */
$author = (array)$authorLC;
$metadata = json_decode($author['_data'][CitationManagerPlugin::CITATION_MANAGER_METADATA_AUTHOR], true);
$metadata = json_decode($authorLC->getData(CitationManagerPlugin::CITATION_MANAGER_METADATA_AUTHOR), true);
$metadata = ClassHelper::getClassWithValuesAssigned(new MetadataAuthor(), $metadata);
if (empty($metadata)) $metadata = new MetadataAuthor();
$author['_data'][CitationManagerPlugin::CITATION_MANAGER_METADATA_AUTHOR] = $metadata;
Expand Down

0 comments on commit da5b7ae

Please sign in to comment.