Small changes from dev

This commit is contained in:
2020-02-28 11:14:18 +01:00
parent 5bdd1e1e67
commit a6e78ef9e3
2 changed files with 28 additions and 24 deletions

View File

@@ -1,16 +1,13 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class NewsController extends Controller
{
private $EXTERNAL_NEWS_API;
private static $NEWS_CATEGORY = 1;
private static $CALENDAR_CATEGORY = 42;
private static $EXTERNAL_NEWS_CATEGORY = 44;
private static $EXTERNAL_NEWS_CATEGORY = 0;
private static $BLOG_CATEGORY = 45;
private static $BASE_SQL = <<<QUERY
@@ -38,7 +35,20 @@ QUERY;
*/
public function __construct()
{
$this->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');
}
/**
@@ -50,7 +60,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 +90,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) {
@@ -88,24 +103,19 @@ QUERY;
public function findnews(Request $request, $query) {
$page = (int)$request->get('pagina', 1);
$count = (int)$request->get('aantal', 15);
if($page <= 0) {
return abort(400);
}
$start = ($page - 1) * $count;
$query = strip_tags(urldecode($query));
$searchRange = [
(new \DateTimeImmutable())->setDate(date('Y') + 1 - $page, 1, 1),
(new \DateTimeImmutable())->setDate(date('Y') + 2 - $page, 1, 1)];
$newsItems = app('db')->select(self::$BASE_SQL
. ' AND `news`.`creationdt` >= :startRange AND `news`.`creationdt` <= :endRange'
. ' AND MATCH(`content`.`title`, `content`.`content`) AGAINST(:query IN BOOLEAN MODE)'
$newsItems = app('db')->select($s=self::$BASE_SQL
. ' AND MATCH(`content`.`title`, `content`.`content`) AGAINST(:query IN NATURAL LANGUAGE MODE)'
. ' ORDER BY COALESCE(`news`.`pubupdatedt`, `news`.`creationdt`) DESC'
. ' LIMIT 0, 20', [
. ' LIMIT ' . $start . ', ' . $count, [
'category' => self::$NEWS_CATEGORY,
'secondarycategory' => self::$EXTERNAL_NEWS_CATEGORY,
'startRange' => $searchRange[0]->format('Y-m-d'),
'endRange' => $searchRange[1]->format('Y-m-d'),
'query' => $query
]);
@@ -243,13 +253,6 @@ QUERY
$data = array('version' => 1,
'news' => new \Model\NewsItem($item['data'], $item['images'], $item['podcast']));
if($externalId = (int)$item['data']->external_id) {
$externalSource = json_decode(file_get_contents($this->EXTERNAL_NEWS_API . 'news?source=api&externalid=' . (int)$externalId));
if($externalSource) {
$data['version'] = 2;
$data['source'] = $externalSource->news;
}
}
return response()->json($data);
}

View File

@@ -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' );