|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/parassaas.edukrypt.in/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Models\User;
use App\Models\Content;
use App\Models\Product;
use App\Models\Category;
use App\Models\S3bucket;
use App\Models\Videotag;
use App\Models\Re_s3bucket;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class ReVideoController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$data['mainMenu'] = 'video';
$data['subMenu'] = 'revideoList';
$data['folder_name'] = 'navinclassess';
$data['tags'] = Videotag::get();
if (isset($_GET['query']) && strlen($_GET['query']) > 1) {
$search_text = $_GET['query'];
$data['products'] = DB::table('re_s3buckets')->where('filename', 'LIKE', '%' . $search_text . '%')->paginate(10);
return view('admin.re-video.video-list', $data);
} else {
$data['products'] = DB::table('re_s3buckets')->paginate(10);
return view('admin.re-video.video-list', $data);
}
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$data['mainMenu'] = 'video';
$data['subMenu'] = 'revideoList';
// $data['videos'] = s3bucket::get();
$etag_arr = [];
$reetag_arr = [];
$s3videos = s3bucket::get();
if (!empty($s3videos)) {
foreach ($s3videos as $video) {
$etag_arr[] = $video->etag;
}
}
$re_videos = Re_s3bucket::get();
if (!empty($re_videos)) {
foreach ($re_videos as $re_video) {
$reetag_arr[] = $re_video->etag;
}
}
$notMapids = array_diff($etag_arr, $reetag_arr);
$data['videos'] = s3bucket::whereIn('etag', $notMapids)->get();
return view('admin.re-video.upload-video', $data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$originalname = $request->originalname;
$customname = $request->customname;
$time = $request->time;
$video_id = $request->video_id;
$public_datas = array_combine($video_id, $customname);
$time_datas = array_combine($video_id, $time);
if (!empty($public_datas)) {
foreach ($public_datas as $key => $public_data) {
$s3bucket = s3bucket::where(['etag' => $key])->first();
// dd($key);
$data = array(
'filename' => $s3bucket->filename,
'public_name' => $public_data,
'path' => $s3bucket->path,
'etag' => $s3bucket->etag,
'size' => $s3bucket->size,
'type' => $s3bucket->type,
'admin_id' => $s3bucket->admin_id,
'date' => $s3bucket->date,
);
Re_s3bucket::create($data);
}
}
if (!empty($time_datas)) {
foreach ($time_datas as $key => $time_data) {
// sscanf($time_data, "%d:%d:%d", $hours, $minutes, $seconds);
// $time_seconds = isset($seconds) ? $hours * 3600 + $minutes * 60 + $seconds : $hours * 60 + $minutes;
$time_seconds = $time_data * 60;
$s3bucket = s3bucket::where(['etag' => $key])->first();
$data = array(
'duration' => $time_seconds,
);
Re_s3bucket::where(['etag' => $key])->update($data);
}
return back()
->with('success', ' Video Has Been Added!.');
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$data['mainMenu'] = 'video';
$data['subMenu'] = 'revideoList';
$data['tags'] = Videotag::get();
$data['video'] = Re_s3bucket::where(['etag' => $id])->first();
return view('admin.re-video.edit-video', $data);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$request->validate([
'public_name' => 'required',
'time' => 'required',
'tags' => 'required',
]);
$time_seconds = 0;
if (!empty($request->time)) {
$time_seconds = $request->time * 60;
}
$data = array(
'public_name' => $request->public_name,
'duration' => $time_seconds,
'tags' => implode(',', $request->tags)
);
$res = Re_s3bucket::where(['etag' => $id])->update($data);
if ($res) {
return back()
->with('success', $request->public_name . ' Has Been updated!.');
} else {
return back()
->with('error', 'Something Went Wrong!');
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
Content::where(['video_id' => $id])->delete();
Re_s3bucket::where(['etag' => $id])->delete();
return back()->with('success', 'Video deleted successfully');
}
public function destroyAll(Request $request)
{
$ids = $request->post('ids');
$query = Re_s3bucket::whereIn('id', $ids)->delete();
if ($query) {
return true;
}
return false;
}
// play video history
public function playVideoHistoryList(Request $request)
{
$data['mainMenu'] = 'video';
$data['subMenu'] = 'playvideoHistList';
$query = DB::table('video_histories as V');
if (!empty($request->query())) {
if (!empty($request->query('course'))) {
$query->where('P.name', $_GET['course']);
}
if (!empty($request->query('user'))) {
$query->where('U.user_unique_id', $_GET['user']);
}
if (!empty($request->query('query'))) {
$query->Where('R.filename', 'LIKE', '%' . $_GET['query'] . '%');
}
}
$query->join('users as U', 'U.user_unique_id', '=', 'V.user_unique_id');
$query->join('products as P', 'P.id', '=', 'V.product_id');
$query->join('re_s3buckets as R', 'R.etag', '=', 'V.video_id');
// ->where(['P.admin_id'=>$admin_id,'P.status'=>'1'])
$query->select('V.*', 'U.name', 'U.email', 'P.name as product_name', 'R.filename');
$query->orderBy('sort_order', 'ASC');
$data['videoHistories'] = $query->paginate(10);
$data['users'] = User::get();
$data['products'] = Product::get();
$data['videos'] = Re_s3bucket::get();
return view('admin.re-video.play-video-history-list', $data);
}
public function deleteAllObjectMap(Request $request)
{
if ($request->method() == 'POST') {
$len = count($request->post('video_ids'));
if ($len > 0) {
$values = $request->post('video_ids');
Re_s3bucket::whereIn('id', $values)->delete();
return true;
} else {
return false;
}
}
}
public function assign_multiple_tags(Request $request)
{
$re_video_id = $request->re_video_id;
$tags = $request->tags;
if (!empty($re_video_id)) {
$commaTags = NULL;
if (!empty($tags)) {
$commaTags = implode(',', $tags);
}
$data = array(
'tags' => $commaTags
);
Re_s3bucket::whereIn('id', $re_video_id)->update($data);
Session::flash('success', 'Tags successfully updated in videos!');
return true;
}
return false;
}
}