mirror of
https://github.com/chylex/Nextcloud-News.git
synced 2025-08-16 06:31:41 +02:00
.github
.tx
appinfo
bin
css
docs
img
js
l10n
lib
AppInfo
Command
Config
Controller
Exceptions
AdminController.php
ApiController.php
ApiPayloadTrait.php
Controller.php
ExportController.php
FeedApiController.php
FeedController.php
FolderApiController.php
FolderApiV2Controller.php
FolderController.php
ItemApiController.php
ItemController.php
JSONHttpErrorTrait.php
PageController.php
UtilityApiController.php
Cron
Db
Explore
Fetcher
Hooks
Migration
Plugin
Scraper
Search
Service
Settings
Utility
screenshots
templates
tests
.editorconfig
.gitignore
.mailmap
AUTHORS.md
CHANGELOG.md
CONTRIBUTING.md
COPYING
Makefile
README.md
composer.json
composer.lock
mkdocs.yml
phpstan.neon.dist
phpunit.xml
89 lines
2.0 KiB
PHP
89 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* Nextcloud - News
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later. See the COPYING file.
|
|
*
|
|
* @author Alessandro Cosentino <cosenal@gmail.com>
|
|
* @author Bernhard Posselt <dev@bernhard-posselt.com>
|
|
* @author David Guillot <david@guillot.me>
|
|
* @author Paul Tirk <paultirk@paultirk.com>
|
|
* @copyright 2012 Alessandro Cosentino
|
|
* @copyright 2012-2014 Bernhard Posselt
|
|
* @copyright 2018 David Guillot
|
|
* @copyright 2020 Paul Tirk
|
|
*/
|
|
|
|
namespace OCA\News\Controller;
|
|
|
|
use OCA\News\AppInfo\Application;
|
|
use OCA\News\Controller\Exceptions\NotLoggedInException;
|
|
use \OCP\IUser;
|
|
use \OCP\IRequest;
|
|
use \OCP\IUserSession;
|
|
use \OCP\AppFramework\ApiController as BaseApiController;
|
|
|
|
/**
|
|
* Class ApiController
|
|
*
|
|
* @package OCA\News\Controller
|
|
*/
|
|
class ApiController extends BaseApiController
|
|
{
|
|
/**
|
|
* @var IUserSession|null
|
|
*/
|
|
private $userSession;
|
|
|
|
/**
|
|
* ApiController constructor.
|
|
*
|
|
* Stores the user session to be able to leverage the user in further methods
|
|
*
|
|
* @param IRequest $request The request
|
|
* @param IUserSession|null $userSession The user session
|
|
*/
|
|
public function __construct(IRequest $request, ?IUserSession $userSession)
|
|
{
|
|
parent::__construct(Application::NAME, $request);
|
|
$this->userSession = $userSession;
|
|
}
|
|
|
|
/**
|
|
* @return IUser|null
|
|
*/
|
|
protected function getUser(): ?IUser
|
|
{
|
|
if ($this->userSession === null) {
|
|
throw new NotLoggedInException();
|
|
}
|
|
|
|
return $this->userSession->getUser();
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
protected function getUserId()
|
|
{
|
|
return $this->getUser()->getUID();
|
|
}
|
|
|
|
/**
|
|
* Indication of the API levels
|
|
*
|
|
* @PublicPage
|
|
* @NoCSRFRequired
|
|
* @CORS
|
|
*
|
|
* @return array
|
|
*/
|
|
public function index(): array
|
|
{
|
|
return [
|
|
'apiLevels' => ['v1-2', 'v1-3', 'v2']
|
|
];
|
|
}
|
|
}
|