73 lines
2 KiB
PHP
73 lines
2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Podcast\Podcast;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class PodcastController extends Controller
|
|
{
|
|
public function index(Request $request) {
|
|
if (!isset($request->per_page) || is_null($request)) {
|
|
$pagination = 5;
|
|
} else {
|
|
$pagination = $request->per_page;
|
|
}
|
|
|
|
return Podcast::searchFilter($request)
|
|
->with(['episodes', 'imported'])
|
|
->paginate($pagination)
|
|
->toJson();
|
|
}
|
|
|
|
public function store(Request $request) {
|
|
return $this->save($request);
|
|
}
|
|
|
|
/**
|
|
* Method used to update a smart block
|
|
* @param Request $request
|
|
* @param $id
|
|
* @return mixed
|
|
*/
|
|
public function update(Request $request) {
|
|
return $this->save($request);
|
|
}
|
|
|
|
/**
|
|
* Delete a smart block, cleaning also cc_blockcontent and cc_blockcriteria
|
|
* @param $id
|
|
* @return int
|
|
*/
|
|
public function delete($id) {
|
|
return Podcast::with(['content', 'criteria'])::destroy($id);
|
|
}
|
|
|
|
protected function save(Request $request)
|
|
{
|
|
$user = Auth::user();
|
|
$xml = simplexml_load_file($request->url);
|
|
$itunes = $xml->channel->children('itunes', TRUE);
|
|
|
|
$dbPodcast = Podcast::firstOrNew(['id' => $request->id]);
|
|
$dbPodcast->fill([
|
|
'url' => $request->url,
|
|
'title' => $xml->channel->title,
|
|
'creator' => $itunes->author,
|
|
'description' => $itunes->subtitle,
|
|
'language' => $xml->channel->language,
|
|
'copyright' => $xml->channel->copyright,
|
|
'link' => $xml->channel->link,
|
|
'itunes_author'=> $itunes->author,
|
|
'itunes_keywords' => '',
|
|
'itunes_summary' => $itunes->summary,
|
|
'itunes_subtitle' => $itunes->subtitle,
|
|
'itunes_category' => '',
|
|
'itunes_explicit' => $itunes->explicit,
|
|
'owner' => $user->id,
|
|
])->save();
|
|
|
|
return $dbPodcast->toJson();
|
|
}
|
|
}
|