5 use Services\IUserSession
;
6 use Services\Http\IHttpRequest
;
7 use DataAccess\IUserRepository
;
9 class UserSession
implements IUserSession
11 private $_httpRequest;
12 private $_userRepository;
13 private $_currentUser;
15 public function __construct(IHttpRequest
$httpRequest, IUserRepository
$userRepository)
17 $this->_httpRequest
= $httpRequest;
18 $this->_userRepository
= $userRepository;
21 public function getCurrentUser() {
22 if(empty($this->_currentUser
))
24 $request = $this->_httpRequest
->isGet() ?
$this->_httpRequest
->get()
25 : json_decode($this->_httpRequest
->getBody(), true
);
27 $token = isset($request['token']) ?
$request['token'] : null
;
28 $this->_currentUser
= $this->_userRepository
->findByAuthToken($token);
31 return $this->_currentUser
;