Viewing file: ItemRepository.php (6.65 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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; } }
if($request->hasFile('video')){ $file = $request->video; $name = time().str_replace(' ', '', $file->getClientOriginalName()); $file->move('assets/videos',$name); $input['video'] = $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); }
if($request->has('tags')){ $input['tags'] = str_replace(["value", "{", "}", "[","]",":","\""], '', $request->tags); }
unset($input['photo']); unset($input['_method']); unset($input['_token']);
}
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')) { $limitedGalleries = array_slice($galleries, 0, 5); foreach($limitedGalleries as $key => $gallery){ $storeData[$key] = [ 'photo'=> ImageHelper::handleUploadedImage($gallery,'assets/images'), 'item_id' => $item_id ? $item_id : $request['item_id'], ]; } } return $storeData; }
}
|