diff --git a/api/app/Http/Controllers/NewsController.php b/api/app/Http/Controllers/NewsController.php index 2ef9a59..378bf64 100644 --- a/api/app/Http/Controllers/NewsController.php +++ b/api/app/Http/Controllers/NewsController.php @@ -1,5 +1,4 @@ EXTERNAL_NEWS_API = env('EXTERNAL_NEWS_API', '//'); } + /** + * RSS-feed van alle podcasts + */ + public function rss(Request $request) { + $page = (int)$request->get('page', 1); + if($page <= 0) { + return abort(400); + } + + $podcasts = $this->retrieveNewsItems($page, $count = 20, $filter = null, $params = []); + $view = view('rss.news')->with('news', $podcasts)->with('url', $request->url())->with('page', $page); + return response($view)->header('Content-Type', 'application/xml'); + } + /** * Lijst van alle nieuwsberichten */ @@ -50,7 +63,12 @@ QUERY; if($count <= 0 || $page <= 0) { return abort(400); } + + $result = $this->retrieveNewsItems($page, $count, $filter, []); + return response()->json(['page' => $page, 'count' => $count, 'news' => $result]); + } + public function retrieveNewsItems($page, $count, $filter, $params) { $filterSql = ""; $params = ['category' => self::$NEWS_CATEGORY, 'secondarycategory' => self::$EXTERNAL_NEWS_CATEGORY]; if($filter) { @@ -75,7 +93,7 @@ QUERY; $result[] = new \Model\NewsItem($newsItem, $pictures); } - return response()->json(['page' => $page, 'count' => $count, 'news' => $result]); + return $result; } public function regionlist(Request $request, $region) { diff --git a/api/routes/web.php b/api/routes/web.php index 2f0c436..5f346f2 100644 --- a/api/routes/web.php +++ b/api/routes/web.php @@ -17,6 +17,7 @@ $app->get('/', function () use ($app) { }); $app->get( 'rss/podcasts', 'PodcastController@rss' ); +$app->get( 'rss/nieuws', 'NewsController@rss' ); $app->get( 'menu/special', 'MenuController@special' );