Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
45.45% covered (warning)
45.45%
5 / 11
CRAP
81.82% covered (success)
81.82%
27 / 33
ClientCommon
0.00% covered (danger)
0.00%
0 / 1
45.45% covered (warning)
45.45%
5 / 11
21.17
81.82% covered (success)
81.82%
27 / 33
 get
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 post
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 put
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 delete
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 send
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 systemSend
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 isInit
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
 init
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
 setToken
0.00% covered (danger)
0.00%
0 / 1
2.06
75.00% covered (success)
75.00%
3 / 4
 setUserId
0.00% covered (danger)
0.00%
0 / 1
6.01
92.86% covered (success)
92.86%
13 / 14
 setSytemToken
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
1<?php
2
3namespace Qmp\Laravel\MicroService\Client;
4
5use Qmp\Laravel\MicroService\Client\Exceptions\ClientException;
6use Qmp\Laravel\MicroService\Client\Tools\Http;
7use Qmp\Laravel\MicroService\Client\Tools\Request;
8
9class ClientCommon
10{
11    const KEYWORD_HEADER_REQUEST = 'X-Qwamplify-user-id';
12    const KEYWORD_HEADER_REQUEST_SYSTEM_CALL = 'X-Qwamplify-system-token';
13    const KEYWORD_HEADER_REQUEST_AUTH_TYPE = 'x-auth-type';
14    const KEYWORD_HEADER_REQUEST_ORIGIN = 'x-origin';
15
16    /**
17     * @var Http
18     */
19    protected static $http;
20
21    /**
22     * Get data
23     *
24     * @param Request $request
25     * @param null|int $id
26     * @return \GuzzleHttp\Promise\PromiseInterface|Tools\Response
27     */
28    public static function get(Request $request, $id = null)
29    {
30        return static::send(Request::METHOD_GET, $request, $id);
31    }
32
33    public static function post(Request $request, $id = null)
34    {
35        return static::send(Request::METHOD_POST, $request, $id);
36    }
37
38    public static function put(Request $request, $id = null)
39    {
40        return static::send(Request::METHOD_PUT, $request, $id);
41    }
42
43    public static function delete(Request $request, $id = null)
44    {
45        return static::send(Request::METHOD_DELETE, $request, $id);
46    }
47
48    protected static function send($method, Request $request, $id = null)
49    {
50        return;
51    }
52
53    public static function systemSend($method, Request $request, $id = null)
54    {
55        return;
56    }
57
58    /**
59     * Check initialisation
60     *
61     * @param Request $request
62     */
63    protected static function isInit(Request $request)
64    {
65        if (!(static::$http instanceof Http)) {
66            static::init($request);
67        }
68    }
69
70    /**
71     * Initialise Client for API use
72     *
73     * @param Request $request
74     * @throws ClientException
75     */
76    protected static function init(Request $request)
77    {
78        if ($request->getUrl() === null) {
79            throw new ClientException('Base url must be setted', 20);
80        }
81        static::$http = new Http(new \GuzzleHttp\Client(['base_uri' => $request->getUrl()]));
82    }
83
84    /**
85     * @param Request $request
86     */
87    protected static function setToken(Request $request)
88    {
89        $token = request()->header('Authorization');
90        if (!empty($token)) {
91            $request->setToken($token);
92        }
93    }
94
95    /**
96     * @param Request $request
97     */
98    protected static function setUserId(Request $request)
99    {
100        $requestHttp = request();
101
102        $userId = $requestHttp->auth_user_id;
103        if(empty($userId)) {
104            $userId = $requestHttp->header(Client::KEYWORD_HEADER_REQUEST);
105        }
106        if (!empty($userId)) {
107            $request->setUserId($userId);
108        }
109
110        $authType = $requestHttp->auth_type;
111        if(empty($authType)) {
112            $authType = $requestHttp->header(Client::KEYWORD_HEADER_REQUEST_AUTH_TYPE);
113        }
114        if (empty($authType)) {
115            $authType = 'internal';
116        }
117        if (!empty($authType)) {
118            $request->setAuthType(strtolower($authType));
119        }
120    }
121
122    /**
123     * @param Request $request
124     */
125    protected static function setSytemToken(Request $request)
126    {
127        $request->setSystemToken(env('TOKEN_SYSTEM_CALL'));
128    }
129}