Файловый менеджер - Редактировать - /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Controllers/Api/V1/User/CartApiController.php
Назад
<?php namespace App\Http\Controllers\Api\V1\User; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\User\StoreCartRequest; use App\Http\Resources\User\CartResource; use App\Models\Cart; use Gate; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class CartApiController extends Controller { use MediaUploadingTrait; public function index() { $cart_items = Cart::where('user_id', auth()->id()) ->get(); CartResource::withoutWrapping(); return CartResource::collection($cart_items); } public function update_quantity(Request $request, Cart $cart) { abort_if(Gate::denies('update-record', $cart), Response::HTTP_FORBIDDEN, '403 Forbidden'); $request->validate([ 'quantity' => 'required|integer|min:1', ]); $cart->quantity = $request->quantity; $cart->save(); return (new CartResource($cart)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function update_quantity_bulk(Request $request) { $request->validate([ 'items' => 'required|array', 'items.*.id' => 'required|exists:carts,id,user_id,'.auth()->id(), 'items.*.quantity' => 'required|integer|gt:0', ],[ 'items.*.id.required' => 'Id for item #:position is required.', 'items.*.id.exists' => 'Id for item #:position is invalid.', 'items.*.quantity.required' => 'Quantity for item #:position is required.', 'items.*.quantity.integer' => 'Quantity for item #:position must be an integer.', 'items.*.quantity.gt' => 'Quantity for item #:position must be greater than 0.', ]); \DB::beginTransaction(); try { foreach ($request->get('items', []) as $item){ $cart = Cart::find($item['id']); $cart->quantity = $item['quantity']; $cart->save(); } \DB::commit(); return response() ->json(['message' => 'Cart items updated successfully'], Response::HTTP_OK); }catch (\Exception $e){ \Log::channel('db_errors')->info('Record Update Error : Cart items bulk'); \Log::channel('db_errors')->info($e->getMessage()); \DB::rollBack(); return response() ->json([ 'message' => "Cart not updated.", 'errors' => ["error" => ["Unable to update cart items."]] ], Response::HTTP_INTERNAL_SERVER_ERROR); } } public function store(StoreCartRequest $request) { if ($request->hasFile('attachment')){ $attachment = $this->storePDF($request->file('attachment'), auth()->id(), 'order'); } $cart = Cart::create( array_merge($request->validated(), ['user_id' => auth()->id(), 'attachment' => $attachment ?? null ]) ); return (new CartResource($cart)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(Cart $cart) { return new CartResource($cart); } /*public function update(StoreCartRequest $request, Cart $cart) { abort_if(Gate::denies('update-record', $cart), Response::HTTP_FORBIDDEN, '403 Forbidden'); $attachment = $cart->attachment; if ($request->hasFile('attachment')){ if ($attachment){ $this->deletePDF($attachment, 'order'); } $attachment = $this->storePDF($request->file('attachment'), auth()->id(), 'order'); } $cart->update( array_merge( $request->validated(), ['attachment' => $attachment] ) ); return (new CartResource($cart)) ->response() ->setStatusCode(Response::HTTP_CREATED); }*/ public function destroy(Cart $cart) { abort_if(Gate::denies('update-record', $cart), Response::HTTP_FORBIDDEN, '403 Forbidden'); try { $cart->delete(); return response() ->json(['message' => 'Cart deleted successfully'], Response::HTTP_OK); }catch (\Exception $e){ \Log::channel('db_errors')->info('Record Deletion Error : Cart -> '.$cart->id); \Log::channel('db_errors')->info($e->getMessage()); return response() ->json([ 'message' => "Record not deleted.", 'errors' => ["error" => ["Unable to delete cart."]] ], Response::HTTP_INTERNAL_SERVER_ERROR); } } public function clearCart() { try { $items = Cart::where('user_id', auth()->id()); if($items->count() == 0){ return response() ->json([ 'message' => "Empty cart.", 'errors' => ["error" => ["Nothing to delete. Cart already empty."]] ], Response::HTTP_NOT_FOUND); }else{ $items->delete(); return response() ->json(['message' => 'Cart deleted successfully'], Response::HTTP_OK); } }catch (\Exception $e){ \Log::channel('db_errors')->info('Record Deletion Error : Cart'); \Log::channel('db_errors')->info($e->getMessage()); return response() ->json([ 'message' => "Record not deleted.", 'errors' => ["error" => ["Unable to delete cart."]] ], Response::HTTP_INTERNAL_SERVER_ERROR); } } public function clearBulkCart(Request $request) { $request->validate([ 'ids' => 'required|array', 'ids.*' => 'exists:carts,id,user_id,'.auth()->id(), ], [ 'ids.*.exists' => 'Id #:position is invalid.', ] ); try { Cart::whereIn('id', $request->get('ids'))->delete(); return response() ->json(['message' => 'Cart items deleted successfully'], Response::HTTP_OK); }catch (\Exception $e){ \Log::channel('db_errors')->info('Record Deletion Error : Cart items'); \Log::channel('db_errors')->info($e->getMessage()); return response() ->json([ 'message' => "Record not deleted.", 'errors' => ["error" => ["Unable to delete cart items."]] ], Response::HTTP_INTERNAL_SERVER_ERROR); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка