rest_paginate( OrderIndexResource::collection( auth()->user()->orders()->with(['items', 'items.product', 'paymentType'])->latest()->paginate(20) ) ); } /** * (*) Return available times to make an order */ public function time(): JsonResponse { return response()->rest(OrderRepository::availableTimes()); } /** * (*) Store order */ public function store(CheckoutOrderRequest $request, CreateOrderService $service): JsonResponse { $order = $service->execute(auth()->user(), $request->all()); $url = null; if ($request->payment_type_id == 3) { $response = createHalkbankOrder(); if ($response['status'] == 'success') { $url = $response['url']; } } return response()->rest([ 'order_id' => $order->id, 'payment_url' => $url, ], 201); } /** * (*) Show order */ public function show(Order $order): JsonResponse { $order->load(['items', 'items.product', 'paymentType']); return response()->rest(new OrderIndexResource($order)); } /** * Update the specified resource in storage. * * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, Order $order): JsonResponse { // $order-. return response()->rest(); } /** * Remove the specified resource from storage. * * @return \Illuminate\Http\Response */ public function destroy(Order $order) { $order->delete(); return response()->rest(); } }