Skip to content

Commit

Permalink
Remove V1 item API
Browse files Browse the repository at this point in the history
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
  • Loading branch information
SMillerDev committed Feb 13, 2021
1 parent ceba810 commit 633262c
Show file tree
Hide file tree
Showing 50 changed files with 4,565 additions and 1,971 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ The format is almost based on [Keep a Changelog](https://keepachangelog.com/en/1
## [Unreleased]

### Changed
- Remove outdated item DB code.
- Stop returning all feeds after marking folder as read.

### Fixed

Expand Down
8 changes: 0 additions & 8 deletions lib/AppInfo/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,6 @@
use OCP\Files\IRootFolder;
use OCP\Files\Node;


use OCA\News\Db\MapperFactory;
use OCA\News\Db\ItemMapper;
use OCA\News\Fetcher\FeedFetcher;
use OCA\News\Fetcher\Fetcher;
use OCP\User\Events\BeforeUserDeletedEvent;
Expand Down Expand Up @@ -90,11 +87,6 @@ public function register(IRegistrationContext $context): void
$context->registerParameter('exploreDir', __DIR__ . '/../Explore/feeds');
$context->registerParameter('configFile', 'config.ini');

// factories
$context->registerService(ItemMapper::class, function (ContainerInterface $c): ItemMapper {
return $c->get(MapperFactory::class)->build();
});

$context->registerService(HTMLPurifier::class, function (ContainerInterface $c): HTMLPurifier {
$directory = $c->get(ITempManager::class)->getTempBaseDir() . '/news/cache/purifier';

Expand Down
4 changes: 2 additions & 2 deletions lib/Command/Config/FolderDelete.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace OCA\News\Command\Config;

use OCA\News\Service\Exceptions\ServiceException;
use OCA\News\Service\Exceptions\ServiceValidationException;
use OCA\News\Service\FolderServiceV2;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
Expand Down Expand Up @@ -50,7 +50,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$id = $input->getArgument('folder-id');

if ($id === null) {
throw new ServiceException('Can not remove root folder!');
throw new ServiceValidationException('Can not remove root folder!');
}

$this->folderService->delete($user, intval($id));
Expand Down
2 changes: 1 addition & 1 deletion lib/Controller/ApiController.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ protected function getUserId()
*
* @return array
*/
public function index()
public function index(): array
{
return [
'apiLevels' => ['v1-2']
Expand Down
27 changes: 11 additions & 16 deletions lib/Controller/FeedApiController.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,22 @@
use OCA\News\Service\Exceptions\ServiceConflictException;
use OCA\News\Service\Exceptions\ServiceNotFoundException;
use OCA\News\Service\FeedServiceV2;
use OCA\News\Service\ItemServiceV2;
use OCP\AppFramework\Http\JSONResponse;
use \OCP\IRequest;
use \OCP\IUserSession;
use \OCP\AppFramework\Http;

use \OCA\News\Service\ItemService;
use Psr\Log\LoggerInterface;

class FeedApiController extends ApiController
{
use JSONHttpErrorTrait, ApiPayloadTrait;

/**
* TODO: Remove
* @var ItemService
* @var ItemServiceV2
*/
private $oldItemService;
private $itemService;

/**
* @var FeedServiceV2
Expand All @@ -51,12 +50,12 @@ public function __construct(
IRequest $request,
?IUserSession $userSession,
FeedServiceV2 $feedService,
ItemService $oldItemService,
ItemServiceV2 $itemService,
LoggerInterface $logger
) {
parent::__construct($request, $userSession);
$this->feedService = $feedService;
$this->oldItemService = $oldItemService;
$this->itemService = $itemService;
$this->logger = $logger;
}

Expand All @@ -70,12 +69,12 @@ public function index(): array
{

$result = [
'starredCount' => $this->oldItemService->starredCount($this->getUserId()),
'starredCount' => count($this->itemService->starred($this->getUserId())),
'feeds' => $this->serialize($this->feedService->findAllForUser($this->getUserId()))
];

try {
$result['newestItemId'] = $this->oldItemService->getNewestItemId($this->getUserId());
$result['newestItemId'] = $this->itemService->newest($this->getUserId())->getId();
} catch (ServiceNotFoundException $ex) {
// in case there are no items, ignore
}
Expand All @@ -96,9 +95,7 @@ public function index(): array
*/
public function create(string $url, ?int $folderId = null)
{
if ($folderId === 0) {
$folderId = null;
}
$folderId = $folderId === 0 ? null : $folderId;

try {
$this->feedService->purgeDeleted($this->getUserId(), time() - 600);
Expand All @@ -109,7 +106,7 @@ public function create(string $url, ?int $folderId = null)
$this->feedService->fetch($feed);

try {
$result['newestItemId'] = $this->oldItemService->getNewestItemId($this->getUserId());
$result['newestItemId'] = $this->itemService->newest($this->getUserId())->getId();
} catch (ServiceNotFoundException $ex) {
// in case there are no items, ignore
}
Expand Down Expand Up @@ -154,7 +151,7 @@ public function delete(int $feedId)
*/
public function read(int $feedId, int $newestItemId): void
{
$this->oldItemService->readFeed($feedId, $newestItemId, $this->getUserId());
$this->itemService->read($this->getUserId(), $feedId, $newestItemId);
}


Expand All @@ -170,9 +167,7 @@ public function read(int $feedId, int $newestItemId): void
*/
public function move(int $feedId, ?int $folderId)
{
if ($folderId === 0) {
$folderId = null;
}
$folderId = $folderId === 0 ? null : $folderId;

try {
$feed = $this->feedService->find($this->getUserId(), $feedId);
Expand Down
18 changes: 10 additions & 8 deletions lib/Controller/FeedController.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
use OCA\News\Service\FeedServiceV2;
use OCA\News\Service\FolderServiceV2;
use OCA\News\Service\ImportService;
use OCA\News\Service\ItemServiceV2;
use OCP\AppFramework\Http\JSONResponse;
use OCP\IRequest;
use OCP\IConfig;
use OCP\AppFramework\Http;

use OCA\News\Service\ItemService;
use OCA\News\Db\FeedType;
use OCP\IUserSession;

Expand All @@ -35,7 +35,9 @@ class FeedController extends Controller
* @var FeedServiceV2
*/
private $feedService;
//TODO: Remove
/**
* @var ItemServiceV2
*/
private $itemService;
/**
* @var FolderServiceV2
Expand All @@ -54,7 +56,7 @@ public function __construct(
IRequest $request,
FolderServiceV2 $folderService,
FeedServiceV2 $feedService,
ItemService $itemService,
ItemServiceV2 $itemService,
ImportService $importService,
IConfig $settings,
?IUserSession $userSession
Expand All @@ -79,11 +81,11 @@ public function index(): array
// item id which will be used for marking feeds read
$params = [
'feeds' => $this->feedService->findAllForUser($this->getUserId()),
'starred' => $this->itemService->starredCount($this->getUserId())
'starred' => count($this->itemService->starred($this->getUserId()))
];

try {
$id = $this->itemService->getNewestItemId($this->getUserId());
$id = $this->itemService->newest($this->getUserId())->getId();

// An exception occurs if there is a newest item. If there is none,
// simply ignore it and do not add the newestItemId
Expand Down Expand Up @@ -183,7 +185,7 @@ public function create(
$this->feedService->fetch($feed);

try {
$id = $this->itemService->getNewestItemId($this->getUserId());
$id = $this->itemService->newest($this->getUserId())->getId();
// An exception occurs if there is a newest item. If there is none,
// simply ignore it and do not add the newestItemId
$params['newestItemId'] = $id;
Expand Down Expand Up @@ -261,7 +263,7 @@ public function import(array $json): array
$feed = $this->importService->importArticles($this->getUserId(), $json);

$params = [
'starred' => $this->itemService->starredCount($this->getUserId())
'starred' => count($this->itemService->starred($this->getUserId()))
];

if ($feed) {
Expand All @@ -281,7 +283,7 @@ public function import(array $json): array
*/
public function read(int $feedId, int $highestItemId): array
{
$this->itemService->readFeed($feedId, $highestItemId, $this->getUserId());
$this->feedService->read($this->getUserId(), $feedId, $highestItemId);

return [
'feeds' => [
Expand Down
25 changes: 11 additions & 14 deletions lib/Controller/FolderApiController.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
use \OCP\IUserSession;
use \OCP\AppFramework\Http;

use \OCA\News\Service\ItemService;
use \OCA\News\Service\FolderServiceV2;
use \OCA\News\Service\Exceptions\ServiceNotFoundException;
use \OCA\News\Service\Exceptions\ServiceConflictException;
Expand All @@ -30,20 +29,19 @@ class FolderApiController extends ApiController
{
use JSONHttpErrorTrait, ApiPayloadTrait;

/**
* @var FolderServiceV2
*/
private $folderService;
//TODO: Remove
private $itemService;

public function __construct(
IRequest $request,
?IUserSession $userSession,
FolderServiceV2 $folderService,
ItemService $itemService
FolderServiceV2 $folderService
) {
parent::__construct($request, $userSession);

$this->folderService = $folderService;
$this->itemService = $itemService;
}


Expand All @@ -52,7 +50,7 @@ public function __construct(
* @NoCSRFRequired
* @CORS
*/
public function index()
public function index(): array
{
$folders = $this->folderService->findAllForUser($this->getUserId());
return ['folders' => $this->serialize($folders)];
Expand Down Expand Up @@ -142,14 +140,13 @@ public function update(?int $folderId, string $name)
* @NoCSRFRequired
* @CORS
*
* @param int|null $folderId
* @param int $newestItemId
* @param int|null $folderId ID of the folder
* @param int $maxItemId The newest read item
*/
public function read(?int $folderId, int $newestItemId): void
public function read(?int $folderId, int $maxItemId): void
{
if ($folderId === 0) {
$folderId = null;
}
$this->itemService->readFolder($folderId, $newestItemId, $this->getUserId());
$folderId = $folderId === 0 ? null : $folderId;

$this->folderService->read($this->getUserId(), $folderId, $maxItemId);
}
}
35 changes: 10 additions & 25 deletions lib/Controller/FolderController.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,11 @@
namespace OCA\News\Controller;

use OCA\News\Service\Exceptions\ServiceException;
use OCA\News\Service\FeedServiceV2;
use OCP\AppFramework\Http\JSONResponse;
use \OCP\IRequest;
use \OCP\AppFramework\Http;

use \OCA\News\Service\FolderServiceV2;
use \OCA\News\Service\ItemService;
use \OCA\News\Service\Exceptions\ServiceNotFoundException;
use \OCA\News\Service\Exceptions\ServiceConflictException;
use OCP\IUserSession;
Expand All @@ -33,24 +31,14 @@ class FolderController extends Controller
* @var FolderServiceV2
*/
private $folderService;
/**
* @var FeedServiceV2
*/
private $feedService;
//TODO: Remove
private $itemService;

public function __construct(
IRequest $request,
FolderServiceV2 $folderService,
FeedServiceV2 $feedService,
ItemService $itemService,
?IUserSession $userSession
) {
parent::__construct($request, $userSession);
$this->folderService = $folderService;
$this->feedService = $feedService;
$this->itemService = $itemService;
}


Expand Down Expand Up @@ -134,12 +122,12 @@ public function delete(?int $folderId)
/**
* @NoAdminRequired
*
* @param string $folderName
* @param int|null $folderId
* @param int|null $folderId The ID of the folder
* @param string $folderName The new name of the folder
*
* @return array|JSONResponse
*/
public function rename(string $folderName, ?int $folderId)
public function rename(?int $folderId, string $folderName)
{
if (empty($folderId)) {
return new JSONResponse([], Http::STATUS_BAD_REQUEST);
Expand All @@ -159,21 +147,18 @@ public function rename(string $folderName, ?int $folderId)
* @NoAdminRequired
*
* @param int|null $folderId
* @param int $highestItemId
* @param int $maxItemId
*
* @return void
*
* @return array
* @throws ServiceConflictException
* @throws ServiceNotFoundException
*/
public function read(?int $folderId, int $highestItemId): array
public function read(?int $folderId, int $maxItemId): void
{
$folderId = $folderId === 0 ? null : $folderId;

$this->itemService->readFolder(
$folderId,
$highestItemId,
$this->getUserId()
);
$feeds = $this->feedService->findAllForUser($this->getUserId());
return ['feeds' => $this->serialize($feeds)];
$this->folderService->read($this->getUserId(), $folderId, $maxItemId);
}


Expand Down
Loading

0 comments on commit 633262c

Please sign in to comment.