Viewing file: CategoriesController.php (7.96 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers; use App\Models\Product; use App\Models\ProductTranslation; use App\Models\Categories; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; // use GuzzleHttp\Client; use DateTime;
class CategoriesController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); } // get categories function index(Request $req) { return response()->json("No access",403); $vendor_id=auth()->user()->id; try { if (count($req->query())===0) { $categories=Categories::with('sub_Categories')->where("vendor_id",$vendor_id)->where("parent",0)->get(); return response()->json(["data"=>$categories]); // return json_encode($categories) }else{ $categories=$categories->with('sub_Categories')->where("vendor_id",$vendor_id)->where("parent",0)->get(); return response()->json(["data"=>$categories]); } }catch (\Exception $exception) { return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500); } } //create new category public function create(Request $req) { $vendor_id=auth()->user()->id; try{ $validator = Validator::make($req->all(), [ 'name' => 'required|max:150', 'description' => 'nullable|string|between:2,150', ]); if ($validator->fails()) { return response()->json(['error'=>'true',"message"=>$validator->errors()->all()],402); } if(Categories::query()->where([ 'name' => $req->input('name'), 'shop_id' => $req->input('shop_id'), 'vendor_id' => $vendor_id ])->exists()){ return response()->json(['error' => 'true', 'message' => "Category name has already been taken"],400); } $category= new Categories; $category->shop_id = $req->input('shop_id'); $category->name = $req->input('name'); $category->description = $req->input('description'); $category->parent = $req->input('parent'); $category->vendor_id =$vendor_id; $category->save(); if ($category) { $d = new DateTime(); $t=$d->format("ymdHisv"); $data=["category_id"=>$category->id,"_id"=>$t]; return response()->json(['message' => "Category Created Successfully","data"=> $data]); }else{ return response()->json(['error' => 'true', 'message' => "Category Not Created"],500); // return "Something is wrong please try again"; } }catch (\Exception $exception) { return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500); } } // update category public function update(Request $req) { try{ $vendor_id=auth()->user()->id; $validator = Validator::make($req->all(), [ 'name' => 'required|max:150', 'description' => 'nullable|string|between:2,150', ]); if ($validator->fails()) { return response()->json(['error'=>'true',"message"=>$validator->errors()->all()],402); } if ($req->input('id')==$req->input('parent')) { return response()->json(['error' => 'true', 'message' => "Category and sub category can't be same."],400); } $categories = Categories::where('id',$req->input('id'))->where('vendor_id',$vendor_id)->first(); if (empty($categories)) { return response()->json(['error' => 'true', 'message' => "Invalid Category"],402); } $catego=Categories::query() ->where('vendor_id', $vendor_id); if ($req->input('parent')!==0) { $catego->where('id', $req->input('parent')); } if($catego->exists()){ // if(Categories::query()->where('name', $req->input('name')) // ->where('vendor_id', $vendor_id) // ->where('id',"!=",$req->input('id')) // ->exists()){ // return response()->json(['error' => 'true', 'message' => "Category name has already been taken"]); // } $categories->name =$req->input('name'); $categories->description =$req->input('description'); $categories->parent =$req->input('parent'); $cate= $categories->save(); if ($cate) { return response()->json(['message' => "Successfully Updated."]); }else { return response()->json(['error' => 'true', 'message' => "Category not updated"],500); } }else { return response()->json(['error' => 'true', 'message' => "Parent Category is inavlid"],402); } }catch (\Exception $exception) { return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500); } } // delete categories function delete(Request $req,$id) { try{ $vendor_id=auth()->user()->id; $categories = Categories::where('id',$id)->where('vendor_id',$vendor_id)->first(); if (empty($categories)) { return response()->json(['error' => 'true', 'message' => "Invalid Category"],402); }else { if ($categories->parent==0) { Categories::where('parent',$id)->delete(); } $del=$categories->delete(); return response()->json(['message' => "Successfully Deleted."]); } }catch (\Exception $exception) { return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500); } } // create category shop to global vice verca function categoryConversion(Request $req) { try { $vendor_id=auth()->user()->id; $category_list=[]; $ids=[]; if ($req->input("category")!=="") { $category=explode("||",$req->input("category")); for ($i=0; $i < count($category); $i++) { $data=explode(",",$category[$i]); $category_id= Categories::create([ "name" => $data[0], "description" => $data[1], "shop_id" => $req->input("shop_id"), "vendor_id" => $vendor_id ]); $category_list[$data[0]]=$category_id->id; $ids[]=$category_id->id; } } if ($req->input("sub_category")!=="") { $sub_category=explode("||",$req->input("sub_category")); for ($i=0; $i < count($sub_category); $i++) { $data=explode(",",$sub_category[$i]); $category_id= Categories::create([ "name" => $data[0], "description" => $data[1], "vendor_id" => $vendor_id, "shop_id" => $req->input("shop_id"), "parent"=> ($data[3]==0)?$category_list[$data[2]] : $data[3] ]); $ids[]=$category_id->id; } } $data=Categories::select("id as _id",'id','shop_id','name','description','parent','vendor_id','active','store_type')->whereIn('id',$ids)->get(); return response()->json(["data"=>$data]); }catch (\Exception $exception) { return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500); } } }
|