middleware('api')->except('create'); } public function get(Request $request) { $tracking = new Tracking; // Order by $this->orderByRequest($tracking, $request); // Filter $this->filterRequest( builder: $tracking, request: $request, filterKeys: [ 'created_at' => self::F_IN_DATETIME, 'time_string' => self::F_TEXT, 'name' => self::F_TEXT, 'status' => self::F_TEXT ] ); $this->searchRequest( builder: $tracking, value: $request->get('search'), fields: [ 'name', 'time_string', 'status' ] ); $responseData = array_merge( $tracking->paginate($request->get('per_page'))->toArray(), ['status' => true] ); return response()->json($responseData); } public function create(Request $request) { $payload = $request->only(['name', 'time_string', 'status']); $user = Admin::where('name', $payload['name'])->first(); if($user){ $payload['user_id'] = $user->id; $tracking = Tracking::create($payload); return response()->json([ 'data' => $tracking, 'status' => true ]); } return response()->json([ 'data' => "USER NOT EXIST", 'status' => false ]); } public function update(DiscountRequest $request) { $id = $request->get('id'); $discount = Discount::find($id); $payload = $request->all(); if ($discount) { $discount->update($payload); } return response()->json([ 'data' => $discount, 'status' => true ]); } public function delete(DiscountRequest $request) { $id = $request->get('id'); Discount::destroy($id); return response()->json([ 'status' => true ]); } // Delete multiple discounts public function deletes(DiscountRequest $request) { $discounts = $request->get('discounts'); $ids = collect($discounts)->pluck('id'); Discount::whereIn('id', $ids)->delete(); return response()->json([ 'data' => $ids, 'status' => true ]); } // Update multiple discounts public function updates(DiscountRequest $request) { $discounts = $request->get('discounts'); $ids = collect($discounts)->pluck('id'); foreach ($discounts as $discountRequest) { // convert to object|array to array $discountRequest = collect($discountRequest)->toArray(); // handle array $discount = Discount::find($discountRequest['id']); if ($discount) { // exclude id field unset($discount['id']); $discount->update($discountRequest); } } return response()->json([ 'data' => Discount::whereIn('id', $ids)->get(), 'status' => true ]); } }