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 && $video->job->job_status != 'Completed'){ $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 ]); if(!$request->previously_published){ (new VideoInvoice())->addIncentiveItem($video); } 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 && $video->job->job_status != 'Completed'){ $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', ]); //(new VideoInvoice())->addIncentiveItem($video); return response()->json([ 'message' => 'Video url has been deleted.', 'video' => $video, ]); } return response()->json([ 'message' => 'Video url not found.', ], 404); } }