mirror of
https://github.com/chylex/Nextcloud-News.git
synced 2025-04-12 19:15:43 +02:00
added api method for getting items
This commit is contained in:
parent
3d405e0541
commit
e9878cb5b5
25
external/itemapi.php
vendored
25
external/itemapi.php
vendored
@ -36,7 +36,6 @@ use \OCA\News\BusinessLayer\BusinessLayerException;
|
||||
class ItemAPI extends Controller {
|
||||
|
||||
private $itemBusinessLayer;
|
||||
parent::__construct($api, $request);
|
||||
|
||||
public function __construct(API $api,
|
||||
Request $request,
|
||||
@ -47,7 +46,31 @@ class ItemAPI extends Controller {
|
||||
|
||||
|
||||
public function getAll() {
|
||||
$result = array(
|
||||
'items' => array()
|
||||
);
|
||||
|
||||
$userId = $this->api->getUserId();
|
||||
$batchSize = (int) $this->params('batchSize');
|
||||
$offset = (int) $this->params('offset', 0);
|
||||
$type = (int) $this->params('type');
|
||||
$id = (int) $this->params('id');
|
||||
$showAll = $this->params('getRead') === 'true';
|
||||
|
||||
$items = $this->itemBusinessLayer->findAll(
|
||||
$id,
|
||||
$type,
|
||||
$batchSize,
|
||||
$offset,
|
||||
$showAll,
|
||||
$userId
|
||||
);
|
||||
|
||||
foreach ($items as $item) {
|
||||
array_push($result['items'], $item->toAPI());
|
||||
}
|
||||
|
||||
return new NewsAPIResult($result);
|
||||
}
|
||||
|
||||
|
||||
|
4
tests/unit/external/FeedAPITest.php
vendored
4
tests/unit/external/FeedAPITest.php
vendored
@ -45,11 +45,11 @@ class FeedAPITest extends \PHPUnit_Framework_TestCase {
|
||||
private $request;
|
||||
|
||||
protected function setUp() {
|
||||
$this->api = $this->folderBusinessLayer = $this->getMockBuilder(
|
||||
$this->api = $this->getMockBuilder(
|
||||
'\OCA\AppFramework\Core\API')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->request = $this->folderBusinessLayer = $this->getMockBuilder(
|
||||
$this->request = $this->getMockBuilder(
|
||||
'\OCA\AppFramework\Http\Request')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
8
tests/unit/external/FolderAPITest.php
vendored
8
tests/unit/external/FolderAPITest.php
vendored
@ -43,11 +43,11 @@ class FolderAPITest extends \PHPUnit_Framework_TestCase {
|
||||
private $request;
|
||||
|
||||
protected function setUp() {
|
||||
$this->api = $this->folderBusinessLayer = $this->getMockBuilder(
|
||||
$this->api = $this->getMockBuilder(
|
||||
'\OCA\AppFramework\Core\API')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->request = $this->folderBusinessLayer = $this->getMockBuilder(
|
||||
$this->request = $this->getMockBuilder(
|
||||
'\OCA\AppFramework\Http\Request')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -55,7 +55,7 @@ class FolderAPITest extends \PHPUnit_Framework_TestCase {
|
||||
'\OCA\News\BusinessLayer\FolderBusinessLayer')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->feedAPI = new FolderAPI(
|
||||
$this->folderAPI = new FolderAPI(
|
||||
$this->api,
|
||||
$this->request,
|
||||
$this->folderBusinessLayer
|
||||
@ -77,7 +77,7 @@ class FolderAPITest extends \PHPUnit_Framework_TestCase {
|
||||
->with($this->equalTo($this->user))
|
||||
->will($this->returnValue($folders));
|
||||
|
||||
$response = $this->feedAPI->getAll();
|
||||
$response = $this->folderAPI->getAll();
|
||||
|
||||
$this->assertEquals(array(
|
||||
'folders' => array($folders[0]->toAPI())
|
||||
|
107
tests/unit/external/ItemAPITest.php
vendored
Normal file
107
tests/unit/external/ItemAPITest.php
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* ownCloud - News
|
||||
*
|
||||
* @author Alessandro Cosentino
|
||||
* @author Bernhard Posselt
|
||||
* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
|
||||
* @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library 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 AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCA\News\External;
|
||||
|
||||
use \OCA\AppFramework\Http\Request;
|
||||
|
||||
use \OCA\News\BusinessLayer\BusinessLayerException;
|
||||
use \OCA\News\Db\Item;
|
||||
|
||||
require_once(__DIR__ . "/../../classloader.php");
|
||||
|
||||
|
||||
class ItemAPITest extends \PHPUnit_Framework_TestCase {
|
||||
|
||||
private $itemBusinessLayer;
|
||||
private $itemAPI;
|
||||
private $api;
|
||||
private $user;
|
||||
private $request;
|
||||
|
||||
protected function setUp() {
|
||||
$this->api = $this->getMockBuilder(
|
||||
'\OCA\AppFramework\Core\API')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->request = $this->getMockBuilder(
|
||||
'\OCA\AppFramework\Http\Request')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->itemBusinessLayer = $this->getMockBuilder(
|
||||
'\OCA\News\BusinessLayer\ItemBusinessLayer')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->itemAPI = new ItemAPI(
|
||||
$this->api,
|
||||
$this->request,
|
||||
$this->itemBusinessLayer
|
||||
);
|
||||
$this->user = 'tom';
|
||||
}
|
||||
|
||||
|
||||
public function testGetAll() {
|
||||
$items = array(
|
||||
new Item()
|
||||
);
|
||||
$request = new Request(array('params' => array(
|
||||
'batchSize' => 30,
|
||||
'offset' => 20,
|
||||
'type' => 1,
|
||||
'id' => 2,
|
||||
'getRead' => 'false'
|
||||
)));
|
||||
$this->itemAPI = new ItemAPI(
|
||||
$this->api,
|
||||
$request,
|
||||
$this->itemBusinessLayer
|
||||
);
|
||||
|
||||
$this->api->expects($this->once())
|
||||
->method('getUserId')
|
||||
->will($this->returnValue($this->user));
|
||||
$this->itemBusinessLayer->expects($this->once())
|
||||
->method('findAll')
|
||||
->with(
|
||||
$this->equalTo(2),
|
||||
$this->equalTo(1),
|
||||
$this->equalTo(30),
|
||||
$this->equalTo(20),
|
||||
$this->equalTo(false),
|
||||
$this->equalTo($this->user)
|
||||
)
|
||||
->will($this->returnValue($items));
|
||||
|
||||
$response = $this->itemAPI->getAll();
|
||||
|
||||
$this->assertEquals(array(
|
||||
'items' => array($items[0]->toAPI())
|
||||
), $response->getData());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user