Viewing file: CategoriesController.php (6.27 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() { // } // get categories function index($vendor_id,Request $req) {
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{ $pr= new Categories; $table = $pr->getTable(); $columns = \Schema::getColumnListing($table); $categories = Categories::query(); $params = $req->query(); foreach ($params as $key => $value) { if (in_array($key,$columns,true)) { if (!empty($value) || $value==0){ $categories->where($key,$value); } }else{ return response()->json(['error' => 'true', 'message' =>"invalid parameter ".$key]); } } $categories=$categories->with('sub_Categories')->where("vendor_id",$vendor_id)->where("parent",0)->get(); return response()->json(["data"=>$categories]); } } //create new category public function create($vendor_id,Request $req) { $pr= new Categories; $pr_table = $pr->getTable(); $columns = \Schema::getColumnListing($pr_table); $params = collect($req->all())->keys(); foreach ($params as $key) { if (in_array($key,$columns,true)) { continue; }else{ return response()->json(['error' => 'true', 'message' =>"invalid field ".$key]); } } $validator = Validator::make($req->all(), [ 'name' => 'required|min:3', ], [ 'name.required' => 'Category name is required', ]); if ($validator->fails()) { //return error true, with validation error if has return response()->json(['error' => 'true', 'message' => $validator->errors()->all()]); } else { if(Categories::query()->where([ 'name' => $req->input('name'), 'vendor_id' => $vendor_id ])->exists()){ return response()->json(['error' => 'true', 'message' => "Category name has already been taken"]); } $category= new Categories; $category->page_id = $req->input('page_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' => "Something is wrong please try again"]); // return "Something is wrong please try again"; } } // update category public function update($vendor_id,Request $req) { $pr= new Categories; $pr_table = $pr->getTable(); $columns = \Schema::getColumnListing($pr_table); $params = collect($req->all())->keys(); foreach ($params as $key) { if (in_array($key,$columns,true)) { continue; }else{ return response()->json(['error' => 'true', 'message' =>"invalid field ".$key]); } } if ($req->input('id')==$req->input('parent')) { return response()->json(['error' => 'true', 'message' => "Category and sub category can't be same."]); } $categories = Categories::where('id',$req->input('id'))->where('vendor_id',$vendor_id)->first(); if (empty($categories)) { return "Invalid Category"; }else{ $validator = Validator::make($req->all(), [ 'name' => 'required|min:3', ], [ 'name.required' => 'Category name is required', ]); if ($validator->fails()) { //return error true, with validation error if has return response()->json(['error' => 'true', 'message' => $validator->errors()->all()]); } else { $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' => "Something is wrong please try again."]); } }else { return response()->json(['error' => 'true', 'message' => "Parent Category is inavlid"]); }
} } } // delete categories public function delete($id,Request $req) { return $id; } }
|