|
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/navinclasses.studylms.in/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Models\Log;
use App\Models\User;
use App\Models\Product;
use App\Models\Category;
use App\Models\S3bucket;
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';
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);
// Log Data Entry ===========
$logData = array(
'user_id' => Session::get('loggedIn')['id'],
'activity' => "Re_s3bucket " . $s3bucket->filename . " video Added",
'created_at' => date('Y-m-d H:i:s')
);
Log::create($logData);
// End Log =============
}
}
if (!empty($time_datas)) {
foreach ($time_datas as $key => $time_data) {
$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['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'
]);
$time_seconds = 0;
if (!empty($request->time)) {
// sscanf($request->time, "%d:%d:%d", $hours, $minutes, $seconds);
// $time_seconds = isset($seconds) ? $hours * 3600 + $minutes * 60 + $seconds : $hours * 60 + $minutes;
$time_seconds = $request->time * 60;
}
$data = array(
'public_name' => $request->public_name,
'duration' => $time_seconds
);
$res = Re_s3bucket::where(['etag' => $id])->update($data);
if ($res) {
// Log Data Entry ===========
$logData = array(
'user_id' => Session::get('loggedIn')['id'],
'activity' => "Re_s3bucket Etag" . $id . " video updated",
'created_at' => date('Y-m-d H:i:s')
);
Log::create($logData);
// End Log =============
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)
{
Re_s3bucket::where(['etag' => $id])->delete();
// Log Data Entry ===========
$logData = array(
'user_id' => Session::get('loggedIn')['id'],
'activity' => "Re_s3bucket Etag" . $id . " video deleted",
'created_at' => date('Y-m-d H:i:s')
);
Log::create($logData);
// End Log =============
return back()->with('success', 'Post deleted successfully');
}
// play video history
public function playVideoHistoryList()
{
$data['mainMenu'] = 'video';
$data['subMenu'] = 'playvideoHistList';
if (isset($_GET['query']) && (strlen($_GET['query']) > 1) || isset($_GET['user']) || isset($_GET['course']) || isset($_GET['video'])) {
$search_text = $_GET['query'];
$query = DB::table('video_histories as V');
if (!empty($_GET['course'])) {
$query->where('P.name', $_GET['course']);
}
if (!empty($_GET['user'])) {
$query->where('U.user_unique_id', $_GET['user']);
}
if (!empty($_GET['video'])) {
$query->where('R.etag', $_GET['video']);
}
$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);
} else {
$data['videoHistories'] = DB::table('video_histories as V')
->join('users as U', 'U.user_unique_id', '=', 'V.user_unique_id')
->join('products as P', 'P.id', '=', 'V.product_id')
->join('re_s3buckets as R', 'R.etag', '=', 'V.video_id')
->select('V.*', 'U.name', 'U.email', 'P.name as product_name', 'R.filename')
->orderBy('sort_order', 'ASC')
->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);
}
}