/** * Record the start of a new session * * @return \Illuminate\Http\Response * * @SWG\Post( * path="/acs/activity", * tags={"activity"}, * description="Record the start of a period of activity, e.g. someone signing into the laser cutter", * @SWG\Parameter(name="activity", in="body", required=true, @SWG\Schema(ref="#/definitions/Activity")), * @SWG\Response(response="201", description="Activity started, the body will contain the new activityId"), * @SWG\Response(response="404", description="Key fob not found"), * security={{"api_key": {}}} * ) */ public function store(Request $request) { $activityRequest = new Requests\ACS\Activity($request); $keyFob = $this->fobAccess->extendedKeyFobLookup($activityRequest->getTagId()); $activityId = $this->equipmentLogRepository->recordStartCloseExisting($keyFob->user->id, $keyFob->id, $activityRequest->getDevice()); event(new MemberActivity($keyFob, $activityRequest->getDevice())); return response()->json(['activityId' => $activityId, 'user' => ['id' => $keyFob->user->id, 'name' => $keyFob->user->name, 'status' => $keyFob->user->status, 'active' => $keyFob->user->active, 'key_holder' => $keyFob->user->key_holder, 'cash_balance' => $keyFob->user->cash_balance, 'profile_private' => $keyFob->user->profile_private]], 201); }
private function processEndAction() { //Close the session $sessionId = $this->equipmentLogRepository->findActiveUserSession($this->user->id, $this->deviceKey); if ($sessionId !== false) { $this->equipmentLogRepository->endSession($sessionId); } else { $sessionId = $this->equipmentLogRepository->recordStartCloseExisting($this->user->id, $this->keyFob->id, $this->deviceKey, 'inaccurate start'); $this->equipmentLogRepository->endSession($sessionId); } }