Skip to content
Snippets Groups Projects
Fid.php 3.37 KiB
Newer Older
<?php
/**
 * Copyright (C) 2019 Leipzig University Library
 *
 * PHP Version 7
 *
 * 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  ILS
 * @author   Sebastian Kehr <kehr@ub.uni-leipzig.de>
 * @license  http://opensource.org/licenses/gpl-2.0.php GNU GPLv2
 * @link     https://vufind.org/wiki/development Wiki
 */
namespace fid\VuFind\ILS;

use fid\Service\Client;
use fid\Service\ClientException;
use VuFind\Exception\ILS as ILSException;
use VuFind\ILS\Driver\AbstractBase;

/**
 * Class Fid
 *
 * @category VuFind
 * @package  ILS
 * @author   Sebastian Kehr <kehr@ub.uni-leipzig.de>
 * @license  http://opensource.org/licenses/gpl-2.0.php GNU GPLv2
 * @link     https://vufind.org/wiki/development Wiki
 */
class Fid extends AbstractBase
{
    /**
     * Fid client
     *
     * @var Client
     */
    protected $client;

    /**
     * Fid constructor.
     *
     * @param Client $client fid client
     */
    public function __construct(Client $client)
    {
        $this->client = $client;
    }

    /**
     * Initialize the Fid object
     *
     * @return void
     */
    public function init()
    {
        // intentionally left blank
     * Login user
     *
     * @return array|null
     * @throws ClientException
     */
    public function patronLogin(): ?array
    {
        $user = $this->client->requestUserDetails();

        if (!$user) {
            return null;
        }

        return ['id' => $user->getId()];
    }

    /**
     * Method should not be called
     *
     * @param string $id Record id
     *
     * @return mixed|void
     * @throws ILSException
     */
    public function getStatus($id)
    {
        throw new ILSException('Method not available');
    }

    /**
     * Method should not be called
     *
     * @param array $ids Record ids
     *
     * @return array|void
     * @throws ILSException
     */
    public function getStatuses($ids)
    {
        throw new ILSException('Method not available');
    }

    /**
     * Method should not be called
     *
     * @param string     $id     Record id
     * @param array|null $patron patron data
     *
     * @return array|void
     * @throws ILSException
     */
    public function getHolding($id, array $patron = null, array $options = [])
    {
        throw new ILSException('Method not available');
    }

    /**
     * Method should not be called
     *
     * @param string $id Record id
     *
     * @return array|void
     * @throws ILSException
     */
    public function getPurchaseHistory($id)
    {
        throw new ILSException('Method not available');
    }

    /**
     * Return patron data as is
     *
     * @param mixed $patron patron data
     *
     * @return mixed
     */
    public function getMyProfile($patron)
    {
        return $patron;
    }