⚝
One Hat Cyber Team
⚝
Your IP:
160.79.110.218
Server IP:
162.254.39.145
Server:
Linux premium289.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
Server Software:
LiteSpeed
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
favoaysf
/
www
/
app
/
Repositories
/
Back
/
View File Name :
ItemRepository.php
<?php namespace App\Repositories\Back; use App\{ Models\Item, Models\Gallery, Helpers\ImageHelper }; use App\Models\Currency; class ItemRepository { /** * Store item. * * @param \App\Http\Requests\ItemRequest $request * @return void */ public function store($request) { $input = $request->all(); if ($file = $request->file('photo')) { $images_name = ImageHelper::ItemhandleUploadedImage($request->file('photo'),'assets/images'); $input['photo'] = $images_name[0]; $input['thumbnail'] = $images_name[1]; } $curr = Currency::where('is_default',1)->first(); $input['discount_price'] = $request->discount_price / $curr->value; $input['previous_price'] = $request->previous_price / $curr->value; if($request->has('meta_keywords')){ $input['meta_keywords'] = str_replace(["value", "{", "}", "[","]",":","\""], '', $request->meta_keywords); } if($request->has('is_social')){ $input['social_icons'] = json_encode($input['social_icons']); $input['social_links'] = json_encode($input['social_links']); }else{ $input['is_social'] = 0; $input['social_icons'] = null; $input['social_links'] = null; } if($request->has('tags')){ $input['tags'] = str_replace(["value", "{", "}", "[","]",":","\""], '', $request->tags); } if($request->has('is_specification')){ $input['specification_name'] = json_encode($input['specification_name']); $input['specification_description'] = json_encode($input['specification_description']); }else{ $input['is_specification'] = 0; $input['specification_name'] = null; $input['specification_description'] = null; } if($request->has('license_name') && $request->has('license_key')){ $input['license_name'] = json_encode($input['license_name']); $input['license_key'] = json_encode($input['license_key']); }else{ $input['license_name'] = null; $input['license_key'] = null; } // digital product file upload if($request->item_type == 'digital'){ if($request->hasFile('file')){ $file = $request->file; $name = time().str_replace(' ', '', $file->getClientOriginalName()); $file->move('assets/files',$name); $input['file'] = $name; } } if($request->item_type == 'license'){ if($request->hasFile('file')){ $file = $request->file; $name = time().str_replace(' ', '', $file->getClientOriginalName()); $file->move('assets/files',$name); $input['file'] = $name; } } $input['is_type'] = 'undefine'; $item_id = Item::create($input)->id; if(isset($input['galleries'])){ $this->galleriesUpdate($request,$item_id); } return $item_id; } /** * Update item. * * @param \App\Http\Requests\ItemRequest $request * @return void */ public function update($item,$request) { $input = $request->all(); if ( $request->file('photo')) { $images_name = ImageHelper::ItemhandleUpdatedUploadedImage($request->photo,'/assets/images',$item,'/assets/images/','photo'); $input['photo'] = $images_name[0]; $input['thumbnail'] = $images_name[1]; } if($request->has('meta_keywords')){ $input['meta_keywords'] = str_replace(["value", "{", "}", "[","]",":","\""], '', $request->meta_keywords); } $curr = Currency::where('is_default',1)->first(); $input['discount_price'] = $request->discount_price / $curr->value; $input['previous_price'] = $request->previous_price / $curr->value; if($request->has('is_social')){ $input['social_icons'] = json_encode($input['social_icons']); $input['social_links'] = json_encode($input['social_links']); }else{ $input['is_social'] = 0; $input['social_icons'] = null; $input['social_links'] = null; } if($request->has('tags')){ $input['tags'] = str_replace(["value", "{", "}", "[","]",":","\""], '', $request->tags); } if($request->has('is_specification')){ $input['specification_name'] = json_encode($input['specification_name']); $input['specification_description'] = json_encode($input['specification_description']); }else{ $input['is_specification'] = 0; $input['specification_name'] = null; $input['specification_description'] = null; } if($request->has('license_name') && $request->has('license_key')){ $input['license_name'] = json_encode($input['license_name']); $input['license_key'] = json_encode($input['license_key']); }else{ $input['license_name'] = null; $input['license_key'] = null; } if($request->item_type == 'digital'){ if(!$request->hasFile('file')){ if($request->link){ if(file_exists('assets/files/'.$item->file)){ unlink('assets/files/'.$item->file); } $input['file'] = null; } } } // digital product file upload if($request->item_type == 'digital'){ if($request->hasFile('file')){ if($item->file){ if(file_exists('assets/files/'.$item->file)){ unlink('assets/files/'.$item->file); } } $file = $request->file; $name = time().str_replace(' ', '', $file->getClientOriginalName()); $file->move('assets/files',$name); $input['file'] = $name; $input['link'] = null; } } $item->update($input); if(isset($input['galleries'])){ $this->galleriesUpdate($request,$item->id); } } public function highlight($item,$request) { $input = $request->all(); if($request->is_type != 'flash_deal'){ $input['date'] = null; } $item->update($input); } /** * Delete item. * * @param int $id * @return \Illuminate\Http\Response */ public function delete($item) { if($item->galleries()->count() > 0){ foreach($item->galleries as $gallery){ $this->galleryDelete($gallery); } } if($item->campaigns->count() > 0){ $item->campaigns()->delete(); } if($item->reviews->count() > 0){ $item->reviews()->delete(); } if($item->attributes()->count() > 0){ foreach($item->attributes as $attribute){ $attribute->options()->delete(); } $item->attributes()->delete(); } ImageHelper::handleDeletedImage($item,'photo','assets/images/'); ImageHelper::handleDeletedImage($item,'thumbnail','assets/images/'); if($item->item_type == 'digital' && $item->file){ ImageHelper::handleDeletedImage($item,'file','assets/files/'); } $item->delete(); } /** * Update gallery. * * @param \App\Http\Requests\GalleryRequest $request * @return void */ public function galleriesUpdate($request,$item_id=null) { Gallery::insert($this->storeImageData($request,$item_id)); } /** * Delete gallery. * * @param int $id * @return \Illuminate\Http\Response */ public function galleryDelete($gallery) { ImageHelper::handleDeletedImage($gallery,'photo','/assets/images/'); $gallery->delete(); } /** * Custom Function. * @return void */ public function storeImageData($request,$item_id=null) { $storeData = []; if ($galleries = $request->file('galleries')) { foreach($galleries as $key => $gallery){ $storeData[$key] = [ 'photo'=> ImageHelper::handleUploadedImage($gallery,'assets/images'), 'item_id' => $item_id ? $item_id : $request['item_id'], ]; } } return $storeData; } }