%PDF- %PDF-
Direktori : /var/www/html/management/app/Http/Controllers/Api/ |
Current File : /var/www/html/management/app/Http/Controllers/Api/ComputersController.php |
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\ApiController; use App\Models\Computer; use App\Models\Product; use App\Models\Usage; use App\Models\User; use App\Transformers\ComputerTransformer; use App\Transformers\UserTransformer; use Illuminate\Http\Request; class ComputersController extends ApiController { public function index() { $computers = Computer::all(); return $this->collection($computers, new ComputerTransformer); } public function show($computer) { $computer = Computer::query()->find($computer); return $this->item($computer, new ComputerTransformer); } public function store(Request $request) { $computer = Computer::query()->create([ 'code' => $request->get('code'), 'is_enabled' => $request->get('is_enabled'), ]); return $this->item($computer, new ComputerTransformer); } public function disable($computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->is_enabled = false; $computer->save(); return $this->item($computer, new ComputerTransformer); } public function enable($computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->is_enabled = true; $computer->save(); return $this->item($computer, new ComputerTransformer); } public function startOrder($computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->createOrder(); return $this->item($computer, new ComputerTransformer); } public function endOrder(Request $request, $computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->endOrder($request->price); return $this->item($computer, new ComputerTransformer); } public function endUsage(Request $request, $computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->endUsage($request->price); return $this->item($computer, new ComputerTransformer); } /** * @param Request $request * @param $computer * @param $newComputer */ public function transferOrder(Request $request, $computer, $newComputer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); /** @var Computer $newComputer */ $newComputer = Computer::query()->find($newComputer); $computer->transferOrder($newComputer); return $this->item($newComputer, new ComputerTransformer); } /** * @param Request $request * @param $computer * @param $user * @return \Illuminate\Http\JsonResponse */ public function addUserToOrder(Request $request, $computer, $user) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $user = User::query()->find($user); /** @var Usage $usage */ $usage = $computer->getCurrentUsage(); $usage->user_id = $user->id; $usage->save(); return $this->item($user, new UserTransformer); } public function applyGiftDiscount(Request $request, $computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->applyGiftDiscount($request->quantity); } public function applyMoneyDiscount(Request $request, $computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->applyMoneyDiscount($request->money); return $this->item($computer, new ComputerTransformer); } public function addProduct($computer, $product) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); /** @var Product $product */ $product = Product::query()->find($product); $computer->addProduct($product); return $this->item($computer, new ComputerTransformer); } public function fixedTimer(Request $request, $computer) { /** @var Computer $computer */ $computer = Computer::query()->find($computer); $computer->fixedTimer($request->money); return $this->item($computer, new ComputerTransformer); } }