Improvements based on import test.
[rock.divinelegy.git] / Services / UserSession.php
1 <?php
2
3 namespace Services;
4
5 use Services\Http\IHttpRequest;
6 use DataAccess\IUserRepository;
7
8 class UserSession implements IUserSession
9 {
10 private $_userRepository;
11 private $_request;
12 private $_currentUser;
13
14 public function __construct(IHttpRequest $request, IUserRepository $repository)
15 {
16 $this->_request = $request;
17 $this->_userRepository = $repository;
18
19 $token = $this->findToken();
20 $this->_currentUser = $token ? $this->_userRepository->findByAuthToken($token) : null;
21 }
22
23 public function getCurrentUser()
24 {
25 return $this->_currentUser;
26 }
27
28 private function findToken()
29 {
30 //if($this->_request->isPost())
31 //{
32 //Try post
33 $request = $this->_request->post();
34 if(!empty($request['token'])) return $request['token'];
35 //}
36
37 //if($this->_request->isGet())
38 //{
39 //Try get
40 $request = $this->_request->get();
41 if(!empty($request['token'])) return $request['token'];
42 //}
43
44 //no good, try the body
45 $body = json_decode($this->_request->getBody(), true);
46 if(!empty($body['token'])) return $body['token'];
47
48 return null;
49 }
50 }