private function selfClaimBox($boxId, $userId) { if ($userId != \Auth::user()->id) { throw new \BB\Exceptions\AuthenticationException(); } $box = $this->storageBoxRepository->getById($boxId); //Make sure the box is available if (!$box->available) { throw new \BB\Exceptions\ValidationException(); } //Does the user have a box $this->memberStorage->setMember(\Auth::user()->id); $volumeAvailable = $this->memberStorage->volumeAvailable(); if ($volumeAvailable < $box->size) { throw new \BB\Exceptions\ValidationException("You have reached your storage limit"); } //Have the paid for a box if ($this->memberStorage->getRemainingBoxesPaidFor() <= 0) { throw new \BB\Exceptions\ValidationException("You need to pay the deposit first"); } $this->storageBoxRepository->update($boxId, ['user_id' => \Auth::user()->id]); }
/** * @param int $memberId */ public function setMember($memberId) { $this->memberId = $memberId; $this->memberBoxes = $this->storageBoxRepository->getMemberBoxes($this->memberId); $this->boxPayments = $this->paymentRepository->getStorageBoxPayments($this->memberId); }