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 private function findToken()
30 //if($this->_request->isPost())
33 $request = $this->_request
->post();
34 if(!empty($request['token'])) return $request['token'];
37 //if($this->_request->isGet())
40 $request = $this->_request
->get();
41 if(!empty($request['token'])) return $request['token'];
44 //no good, try the body
45 $body = json_decode($this->_request
->getBody(), true
);
46 if(!empty($body['token'])) return $body['token'];