mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-07-14 09:01:42 -04:00
175 lines
5.0 KiB
PHP
175 lines
5.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\StudioPlus\Http\Controllers\API;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Modules\StudioPlus\Entities\StudioPlusVideo;
|
|
use Modules\StudioPlus\Entities\StudioPlusVideoStatusTrack;
|
|
use Modules\StudioPlus\Entities\VideoUrl;
|
|
use Modules\StudioPlus\Http\Requests\StoreVideoUrlRequest;
|
|
use Modules\StudioPlus\Http\Requests\UpdateVideoUrlRequest;
|
|
use Modules\WTIJobBoard\Repositories\JobRequestsRepository;
|
|
use Modules\WTIJobBoard\Repositories\JobRequestShipmentsRepository;
|
|
|
|
class VideoUrlsController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$urls = VideoUrl::orderBy('name')->get();
|
|
|
|
return response()->json([
|
|
'urls' => $urls
|
|
]);
|
|
}
|
|
|
|
public function store(StoreVideoUrlRequest $request)
|
|
{
|
|
if ($request->has('video')) {
|
|
$video_id = $request->video['id'];
|
|
|
|
$data = [
|
|
'video_id' => $video_id,
|
|
'label' => $request->label,
|
|
'url' => $request->url,
|
|
];
|
|
|
|
$url = VideoUrl::create($data);
|
|
$video = StudioPlusVideo::find($video_id);
|
|
$video->load([
|
|
'thumbnail',
|
|
'category',
|
|
'videoType',
|
|
'otts.links',
|
|
'asinData',
|
|
'channel.user',
|
|
'urls',
|
|
]);
|
|
|
|
|
|
if($video->job){
|
|
|
|
$data['id'] = $video->job->id;
|
|
|
|
if(!$video->job->is_received){
|
|
$data['received_at'] = \Carbon\Carbon::now()->format('Y-m-d H:i:s');
|
|
(new JobRequestShipmentsRepository())->received($data);
|
|
}
|
|
|
|
$data['fulfilled_at'] = \Carbon\Carbon::now()->format('Y-m-d H:i:s');
|
|
(new JobRequestsRepository())->fulfilled($data);
|
|
|
|
}
|
|
|
|
$video->update([
|
|
'status' => StudioPlusVideo::STATUS_PUBLISHED
|
|
]);
|
|
|
|
StudioPlusVideoStatusTrack::firstOrCreate([
|
|
'studio_plus_video_id' => $video->id,
|
|
'name' => StudioPlusVideo::STATUS_PUBLISHED
|
|
]);
|
|
|
|
StudioPlusVideoStatusTrack::create([
|
|
'studio_plus_video_id' => $video->id,
|
|
'name' => $request->label.' URL Added'
|
|
]);
|
|
|
|
return response()->json([
|
|
'message' => 'Video url has been saved.',
|
|
'url' => $url,
|
|
'video' => $video,
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function update(UpdateVideoUrlRequest $request)
|
|
{
|
|
$url = VideoUrl::find($request->id);
|
|
|
|
if ($url) {
|
|
$url->fill($request->all());
|
|
$url->update();
|
|
|
|
$video = $url->video;
|
|
$video->load([
|
|
'thumbnail',
|
|
'category',
|
|
'videoType',
|
|
'otts.links',
|
|
'asinData',
|
|
'channel.user',
|
|
'urls',
|
|
]);
|
|
|
|
if($video->job){
|
|
|
|
$data['id'] = $video->job->id;
|
|
|
|
if(!$video->job->is_received){
|
|
$data['received_at'] = \Carbon\Carbon::now()->format('Y-m-d H:i:s');
|
|
(new JobRequestShipmentsRepository())->received($data);
|
|
}
|
|
|
|
$data['fulfilled_at'] = \Carbon\Carbon::now()->format('Y-m-d H:i:s');
|
|
(new JobRequestsRepository())->fulfilled($data);
|
|
|
|
}
|
|
|
|
$video->update([
|
|
'status' => StudioPlusVideo::STATUS_PUBLISHED
|
|
]);
|
|
|
|
StudioPlusVideoStatusTrack::firstOrCreate([
|
|
'studio_plus_video_id' => $video->id,
|
|
'name' => StudioPlusVideo::STATUS_PUBLISHED
|
|
]);
|
|
|
|
StudioPlusVideoStatusTrack::create([
|
|
'studio_plus_video_id' => $video->id,
|
|
'name' => $request->label.' URL Updated'
|
|
]);
|
|
|
|
return response()->json([
|
|
'message' => 'Video url has been udpated.',
|
|
'url' => $url,
|
|
'video' => $video,
|
|
]);
|
|
}
|
|
|
|
return response()->json([
|
|
'message' => 'Video url not found.',
|
|
], 404);
|
|
}
|
|
|
|
public function destroy(Request $request)
|
|
{
|
|
$url = VideoUrl::find($request->id);
|
|
|
|
if ($url) {
|
|
$url->delete();
|
|
$video = $url->video;
|
|
$video->load([
|
|
'thumbnail',
|
|
'category',
|
|
'videoType',
|
|
'otts.links',
|
|
'asinData',
|
|
'channel.user',
|
|
'urls',
|
|
]);
|
|
|
|
return response()->json([
|
|
'message' => 'Video url has been deleted.',
|
|
'video' => $video,
|
|
]);
|
|
}
|
|
|
|
return response()->json([
|
|
'message' => 'Video url not found.',
|
|
], 404);
|
|
}
|
|
}
|