/**
  * 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);
     }
 }