88 lines
2.4 KiB
PHP
88 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Modules\LoanOrder\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Order\Loan\LoanOrder;
|
|
use App\Modules\LoanOrder\Controllers\Requests\LoanOrderStoreRequest;
|
|
use App\Modules\LoanOrder\Controllers\Resources\LoanOrderIndexResource;
|
|
use App\Modules\LoanOrder\Controllers\Resources\LoanOrderShowResource;
|
|
use App\Repos\Order\OrderRepo;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Str;
|
|
|
|
class LoanOrderController extends Controller
|
|
{
|
|
/**
|
|
* LIST* Loan orders.
|
|
*/
|
|
public function index(Request $request): JsonResponse
|
|
{
|
|
return response()->json(LoanOrderIndexResource::collection(
|
|
LoanOrder::query()
|
|
->where('user_id', auth()->id())
|
|
->where('source', OrderRepo::MOBILE_DEVICE)
|
|
->paginate()
|
|
));
|
|
}
|
|
|
|
/**
|
|
* SAVE* Loan order.
|
|
*/
|
|
public function store(LoanOrderStoreRequest $request)
|
|
{
|
|
info($request->all());
|
|
LoanOrder::forceCreate([
|
|
...$request->validated(),
|
|
...[
|
|
'user_id' => auth()->id(),
|
|
'status' => OrderRepo::PENDING,
|
|
'source' => OrderRepo::MOBILE_DEVICE,
|
|
],
|
|
...$this->uploadedFiles($request),
|
|
]);
|
|
|
|
return response()->json([
|
|
'message' => __('Successfully created'),
|
|
], 201);
|
|
}
|
|
|
|
/**
|
|
* Upload files
|
|
*/
|
|
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)
|
|
{
|
|
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): void
|
|
{
|
|
$loanOrder->delete();
|
|
}
|
|
}
|