json(LoanOrderIndexResource::collection( LoanOrder::query() ->where('user_id', auth()->id()) ->where('source', OrderRepo::MOBILE_DEVICE) ->paginate() )); } /** * SAVE* Loan order. */ public function store(LoanOrderStoreRequest $request): JsonResponse { Log::channel('form_logs')->info('loan-order-store-request', $request->all()); $data = $request->validated(); $months = DateHelperRepository::monthsAsNumber(); $years = DateHelperRepository::yearsUntil(); $data['card_month'] = indexByValue($request->card_month, $months); $data['card_year'] = indexByValue($request->card_year, $years); $data['guarantor_card_month'] = indexByValue($request->guarantor_card_month, $months); $data['guarantor_card_year'] = indexByValue($request->guarantor_card_year, $years); $data['guarantor_2_card_month'] = indexByValue($request->guarantor_2_card_month, $months); $data['guarantor_2_card_year'] = indexByValue($request->guarantor_2_card_year, $years); LoanOrder::forceCreate([ ...$data, ...[ 'user_id' => auth()->id(), 'status' => OrderRepo::PENDING, 'source' => OrderRepo::MOBILE_DEVICE, ], ...$this->uploadedFiles($request), ]); return response()->json([ 'message' => __('Successfully created'), ], 201); } /** * Upload files * * @return array */ public function uploadedFiles(Request $request): array { return [ 'passport_one' => Str::after($request->file('passport_one')->store('public'), 'public/'), 'passport_two' => Str::after($request->file('passport_two')->store('public'), 'public/'), 'passport_three' => Str::after($request->file('passport_three')->store('public'), 'public/'), 'passport_four' => Str::after($request->file('passport_four')->store('public'), 'public/'), ]; } /** * SHOW* Loan order */ public function show(LoanOrder $loanOrder): JsonResponse { if ($loanOrder->user_id != auth()->id()) { return response()->json(status: 403); } return response()->json(new LoanOrderShowResource($loanOrder)); } /** * Update the specified resource in storage. */ public function update(Request $request): void { // } /** * DELETE* loan order resource */ public function destroy(LoanOrder $loanOrder): JsonResponse { if ($loanOrder->user_id === auth()->id()) { return response()->json(status: 403); } $loanOrder->delete(); return response()->json(); } }