ApiTrait::apiCall()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 3
dl 0
loc 13
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
namespace Nickcheek\Atdconnect\Traits;
4
5
use SoapClient;
6
7
trait ApiTrait {
8
9
        private $config; 
10
        private $wsshead;
11
        private $user;
12
        private $pass;
13
        private $client;
14
    
15
    
16
        public  function apiCall($call, $query, $service)
17
        {
18
                $config = include(realpath(dirname(__FILE__).'/../config/config.php'));
19
    	
20
                $this->user = $config->user;
21
                $this->pass = $config->pass;
22
                $this->client = $config->client;
23
                $this->wsshead = $this->getWSSHeader();
24
    	
25
        $client = new \SoapClient($service);
26
        $client->__setSoapHeaders($this->wsshead);
27
        $response = $client->$call($query);
28
        return $response;
29
        }   
30
    
31
        public  function getWSSHeader()
32
        {
33
        $xml = '
34
		<wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
35
		    <wsse:UsernameToken atd:clientId="' . $this->client.'" xmlns:atd="http://api.atdconnect.com/atd">
36
		        <wsse:Username>' . $this->user.'</wsse:Username>
37
		        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">' . $this->pass.'</wsse:Password>
38
		    </wsse:UsernameToken>
39
		</wsse:Security>
40
		';
41
        
42
        return new \SoapHeader('http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', 'Security', new \SoapVar($xml, XSD_ANYXML), true);
43
        }
44
    
45
}
46