1
0
mirror of https://github.com/chylex/Nextcloud-News.git synced 2025-04-09 10:15:44 +02:00

api calls are anonymous functions now

This commit is contained in:
Alessandro Cosentino 2013-03-06 10:27:50 +01:00
parent c4349e0c2e
commit 3c87c2be39
6 changed files with 69 additions and 46 deletions

View File

@ -46,11 +46,11 @@ namespace OCA\News;
\OC::$CLASSPATH['OCA\News\NewsController'] = 'apps/news/controller/news.controller.php';
\OC::$CLASSPATH['OCA\News\NewsAjaxController'] = 'apps/news/controller/news.ajax.controller.php';
\OC::$CLASSPATH['OCA\News\FolderBL'] = 'apps/news/folder.bl.php';
\OC::$CLASSPATH['OCA\News\FeedBL'] = 'apps/news/feed.bl.php';
\OC::$CLASSPATH['OCA\News\FolderBl'] = 'apps/news/folder.bl.php';
\OC::$CLASSPATH['OCA\News\FeedBl'] = 'apps/news/feed.bl.php';
\OC::$CLASSPATH['OCA\News\API_Folder'] = 'apps/news/external_api/folder.php';
\OC::$CLASSPATH['OCA\News\API_Feed'] = 'apps/news/external_api/feed.php';
\OC::$CLASSPATH['OCA\News\FolderApi'] = 'apps/news/external_api/folder.php';
\OC::$CLASSPATH['OCA\News\FeedApi'] = 'apps/news/external_api/feed.php';
/**
@ -115,23 +115,23 @@ function createDIContainer(){
/**
* BUSINESS LAYER OBJECTS
*/
$newsContainer['FolderBL'] = $newsContainer->share(function($c){
return new FolderBL($c['FolderMapper']);
$newsContainer['FolderBl'] = $newsContainer->share(function($c){
return new FolderBl($c['FolderMapper']);
});
$newsContainer['FeedBL'] = $newsContainer->share(function($c){
return new FeedBL($c['FeedMapper']);
$newsContainer['FeedBl'] = $newsContainer->share(function($c){
return new FeedBl($c['FeedMapper']);
});
/**
* EXTERNAL API LAYER
*/
$newsContainer['API_Folder'] = $newsContainer->share(function($c){
return new API_Folder($c['FolderBL']);
$newsContainer['FolderApi'] = $newsContainer->share(function($c){
return new FolderApi($c['FolderBl']);
});
$newsContainer['API_Feed'] = $newsContainer->share(function($c){
return new API_Feed($c['FeedBL']);
$newsContainer['FeedApi'] = $newsContainer->share(function($c){
return new FeedApi($c['FeedBl']);
});

View File

@ -205,24 +205,54 @@ $this->create('news_ajax_importOPML', '/import')->action(
/**
* External API
*/
/**
* Feed API
*/
\OCP\API::register(
'get', '/news/feeds', array('OCA\News\API_Feed', 'getAll'), 'news', \OC_API::USER_AUTH
'get', '/news/feeds',
function($urlParams) {
$container = createDIContainer();
return $container['FeedApi']->getAll($urlParams);
},
'news', \OC_API::USER_AUTH
);
\OCP\API::register(
'get', '/news/feeds/{feedid}', array('OCA\News\API_Feed', 'getById'), 'news', \OC_API::USER_AUTH
'get', '/news/feeds/{feedid}',
function($urlParams) {
$container = createDIContainer();
return $container['FeedApi']->getById($urlParams);
},
'news', \OC_API::USER_AUTH
);
\OCP\API::register(
'post', '/news/feeds/create', array('OCA\News\API_Feed', 'create'), 'news', \OC_API::USER_AUTH
'post', '/news/feeds/create',
function($urlParams) {
$container = createDIContainer();
return $container['FeedApi']->create($urlParams);
},
'news', \OC_API::USER_AUTH
);
/**
* Folder API
*/
\OCP\API::register(
'get', '/news/folders', array('OCA\News\API_Folder', 'getAll'), 'news', \OC_API::USER_AUTH
'get', '/news/folders',
function($urlParams) {
$container = createDIContainer();
return $container['FolderApi']->getAll($urlParams);
},
'news', \OC_API::USER_AUTH
);
\OCP\API::register(
'post', '/news/folders/create', array('OCA\News\API_Folder', 'create'), 'news', \OC_API::USER_AUTH
'post', '/news/folders/create',
function($urlParams) {
$container = createDIContainer();
return $container['FolderApi']->create($urlParams);
},
'news', \OC_API::USER_AUTH
);

View File

@ -4,16 +4,14 @@ namespace OCA\News;
use \OCA\News\Controller\FeedController;
class API_Feed {
class FeedApi {
// public __construct($feedbl) {
// $this->bl = $feedbl;
// }
public function __construct($bl){
$this->bl = $bl;
}
public static function getAll() {
$container = createDIContainer();
$bl = $container['FeedBL'];
$feeds = $bl->getAll();
public function getAll() {
$feeds = $this->bl->getAll();
$serializedFeeds = array();
foreach ($feeds as $feed) {
$serializedFeeds[] = $feed->jsonSerialize();
@ -21,23 +19,18 @@ class API_Feed {
return new \OC_OCS_Result($serializedFeeds);
}
public function getById($parameters) {
$feedid = $parameters['feedid'];
$container = createDIContainer();
$bl = $container['FeedBL'];
$feed = $bl->getById($feedid);
public function getById($params) {
$feed = $this->bl->getById($feedid);
$serializedFeed = array($feed->jsonSerialize());
return new \OC_OCS_Result($serializedFeed);
}
public static function create() {
public function create() {
$url = $_POST['url'];
$folderId = $_POST['folderid'];
//TODO: check parameters here
$container = createDIContainer();
$bl = $container['FeedBL'];
$success = $bl->create($url, $folderId);
$success = $this->bl->create($url, $folderId);
if ($success) {
return new \OC_OCS_Result();

View File

@ -4,12 +4,14 @@ namespace OCA\News;
use \OCA\News\Controller\FolderController;
class API_Folder {
class FolderApi {
public static function getAll() {
$container = createDIContainer();
$bl = $container['FolderBL'];
$folders = $bl->getAll();
public function __construct($bl){
$this->bl = $bl;
}
public function getAll() {
$folders = $this->bl->getAll();
$serializedFolders = array();
//TODO: check the behaviour for nested folders
@ -19,14 +21,12 @@ class API_Folder {
return new \OC_OCS_Result($serializedFolders);
}
public static function create() {
public function create() {
$name = $_POST['name'];
$parentId = $_POST['parentid'];
$container = createDIContainer();
$bl = $container['FolderBL'];
$bl->create($name, $parentId);
$this->bl->create($name, $parentId);
return new \OC_OCS_Result();
}

View File

@ -2,7 +2,7 @@
namespace OCA\News;
class FeedBL {
class FeedBl {
public function __construct($feedMapper){
$this->feedMapper = $feedMapper;

View File

@ -2,7 +2,7 @@
namespace OCA\News;
class FolderBL {
class FolderBl {
public function __construct($folderMapper){
$this->folderMapper = $folderMapper;