/**
  * @test
  */
 public function checkTransformerDateInterval()
 {
     $transformer = new DateDiffToDecimalTime();
     $dateInterval = (new \DateTime('now'))->diff(new \DateTime('-1 day'));
     $string = $transformer->transform($dateInterval);
     self::assertEquals(1440, $string);
 }
示例#2
0
 public function endAction()
 {
     if (!$this->loadUserFromSession()) {
         $this->errorMessage('login-needed', _('please login!'), null, ['logout' => true]);
         return;
     }
     $request = ClosureFactory::getInstance()->get('request-handler', []);
     if (!$request->getRaw()) {
         $this->errorMessage('error', _('no request data'));
         return;
     }
     /**
      * @var EntityManager $em
      */
     $em = ClosureFactory::getInstance()->get('entity-manager');
     /**
      * @var Session $session
      */
     $session = $em->findOneBy(new Session(), ['id' => (int) $request->getRaw()->get('sessionId')]);
     if (!$session->getId()) {
         $this->errorMessage('error', _('no session found'));
         return;
     }
     $endTime = new \DateTime('now');
     $startTime = new \DateTime($session->getStartTime());
     $diff = $startTime->diff($endTime);
     $session->setEndTime($endTime->format('Y-m-d H:i:s'));
     $transformer = new DateDiffToDecimalTime();
     $session->setTimeDiff($transformer->transform($diff));
     if ($em->persist($session)) {
         $this->successMessage('session-ended', _('Session successfully ended!'), null, $session);
     } else {
         $this->errorMessage('session-end-failed', _('Session could not be ended!'));
     }
 }