diff --git a/module/finc/config/module.config.php b/module/finc/config/module.config.php index d8ed744e0e4b1aec633201322478c4e0ba94b07b..c836410c342ca7fd17afc685a31fe5e66c7a7fba 100644 --- a/module/finc/config/module.config.php +++ b/module/finc/config/module.config.php @@ -90,6 +90,8 @@ $config = [ 'finc\AjaxHandler\GetResolverLinksFactory', 'finc\AjaxHandler\GetUserILLRequestsStats' => 'VuFind\AjaxHandler\AbstractIlsAndUserActionFactory', + 'finc\AjaxHandler\GetUserLoanHistory' => + 'VuFind\AjaxHandler\AbstractIlsAndUserActionFactory', 'finc\AjaxHandler\GetUserMediaReadyToPickup' => 'VuFind\AjaxHandler\AbstractIlsAndUserActionFactory', 'finc\AjaxHandler\GetUserPermanentLoans' => @@ -106,6 +108,8 @@ $config = [ 'finc\AjaxHandler\GetResolverLinks', 'getUserILLRequestsStats' => 'finc\AjaxHandler\GetUserILLRequestsStats', + 'getUserLoanHistory' => + 'finc\AjaxHandler\GetUserLoanHistory', 'getUserMediaReadyToPickup' => 'finc\AjaxHandler\GetUserMediaReadyToPickup', 'getUserPermanentLoans' => diff --git a/module/finc/src/finc/AjaxHandler/GetUserLoanHistory.php b/module/finc/src/finc/AjaxHandler/GetUserLoanHistory.php new file mode 100644 index 0000000000000000000000000000000000000000..5f1ebed4a46893b12f051bb4571a23f4c5cb9da4 --- /dev/null +++ b/module/finc/src/finc/AjaxHandler/GetUserLoanHistory.php @@ -0,0 +1,63 @@ +<?php +/** + * PHP version 7 + * + * Copyright (C) Villanova University 2018. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * @category VuFind + * @package AJAX + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development Wiki + */ +namespace finc\AjaxHandler; + +use Zend\Mvc\Controller\Plugin\Params; + +/** + * "Get User Holds" AJAX handler + * + * @category VuFind + * @package AJAX + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link https://vufind.org/wiki/development Wiki + */ +class GetUserLoanHistory extends \VuFind\AjaxHandler\AbstractUserRequestAction +{ + /** + * Handle a request. + * + * @param Params $params Parameter helper from controller + * + * @return array [response data, internal status code, HTTP status code] + */ + public function handleRequest(Params $params) + { + $this->disableSessionWrites(); // avoid session write timing bug + $patron = $this->ilsAuthenticator->storedCatalogLogin(); + if (!$patron) { + return $this->formatResponse('', self::STATUS_HTTP_NEED_AUTH, 401); + } + if (!$this->ils->checkCapability('getMyTransactions')) { + return $this->formatResponse('', self::STATUS_HTTP_ERROR, 405); + } + $items = $this->ils->getMyLoanHistory($patron, 100); + $counts = [ 'ok' => $items['total'] ]; + + return $this->formatResponse($counts); + } +}