Search function for podcasts added

This commit is contained in:
2017-10-22 18:31:23 +02:00
parent 8e87a89c8f
commit b9c223a51b
2 changed files with 33 additions and 0 deletions

View File

@@ -68,6 +68,38 @@ QUERY;
return response()->json(new \Model\Podcast($podcasts[0]));
}
public function findpodcast(Request $request, $query) {
$page = (int)$request->get('pagina', 1);
if($page <= 0) {
return abort(400);
}
$query = strip_tags(urldecode($query));
$searchRange = [
(new \DateTimeImmutable())->setDate(date('Y') + 1 - $page, 1, 1),
(new \DateTimeImmutable())->setDate(date('Y') + 2 - $page, 1, 1)];
$podcasts = app('db')->select(self::$BASE_SQL
. ' AND `podcast_meta`.`creationdt` >= :startRange AND `podcast_meta`.`creationdt` <= :endRange'
. ' AND MATCH(`podcast_meta`.`title`, `podcast_meta`.`content`) AGAINST(:query IN BOOLEAN MODE)'
. ' ORDER BY `creationdt` DESC'
. ' LIMIT 0, 20', [
'startRange' => $searchRange[0]->format('Y-m-d'),
'endRange' => $searchRange[1]->format('Y-m-d'),
'query' => $query
]);
$result = array();
foreach($podcasts as $podcast) {
$model = new \Model\Podcast($podcast);
$model->title = \Helpers::HighlightQuery($query, $model->title);
$model->content = \Helpers::HighlightQuery($query, $model->content);
$result[] = $model;
}
return response()->json(['page' => $page, 'podcasts' => $result]);
}
private function getPodcastList(Request $request, $filter, $params)
{
$count = (int)$request->get('aantal', 15);

View File

@@ -29,6 +29,7 @@ $app->get('agenda/populair', 'NewsController@popularCalendar' );
$app->get('podcast/overzicht', 'PodcastController@overview' );
$app->get('podcast/details/{id:\d+}', 'PodcastController@details' );
$app->get('podcast/zoeken/{query}', 'PodcastController@findpodcast' );
$app->get('podcast/programma/{id:\d+}', 'PodcastController@program' );
$app->get('podcast/download/{id:\d+}/{title}', 'PodcastController@download' );
$app->get('podcast/stream/{id:\d+}/{title}', 'PodcastController@stream' );