5 use Services\Http\IHttpRequest
;
6 use DataAccess\IUserRepository
;
8 class UserSession
implements IUserSession
10 private $_userRepository;
12 private $_currentUser;
14 public function __construct(IHttpRequest
$request, IUserRepository
$repository)
16 $this->_request
= $request;
17 $this->_userRepository
= $repository;
19 $token = $this->findToken();
20 $this->_currentUser
= $token ?
$this->_userRepository
->findByAuthToken($token) : null
;
23 public function getCurrentUser()
25 return $this->_currentUser
;
28 public function getCurrentUserQuota() {
32 private function findToken()
34 if($this->_request
->isPost())
36 $request = $this->_request
->post();
37 if(!empty($request['token'])) return $request['token'];
40 if($this->_request
->isGet())
42 $request = $this->_request
->get();
43 if(!empty($request['token'])) return $request['token'];
46 //no good, try the body
47 $body = json_decode($this->_request
->getBody(), true
);
48 if(!empty($body['token'])) return $body['token'];