Passed
Push — master ( 789124...aa2b24 )
by Nicholas
01:56
created

Atdconnect::apiCall()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 3
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Nickcheek\Atdconnect;
4
5
use SoapClient;
6
7
class Atdconnect
8
{
9
    
10
    private static $wsshead;
11
    private static $statuswsdl		= 'https://testws.atdconnect.com/ws/3_4/orderStatus.wsdl';
12
    private static $brandwsdl 		= 'https://testws.atdconnect.com/ws/3_4/brandstyles.wsdl';
13
    private static $locationwsdl	= 'https://testws.atdconnect.com/ws/3_4/locations.wsdl';
14
    private static $productwsdl 	= 'https://testws.atdconnect.com/ws/3_4/products.wsdl';
15
    private static $orderwsdl		= 'https://testws.atdconnect.com/ws/3_4/orders.wsdl';
16
    
17
    
18
    public function __construct($user, $pass, $client)
19
    {
20
        self::$wsshead = $this->getWSSHeader($user, $pass, $client);
21
    }
22
    
23
    public static function getWSSHeader($user, $pass, $client)
24
    {
25
        $xml = '
26
		<wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
27
		    <wsse:UsernameToken atd:clientId="' . $client . '" xmlns:atd="http://api.atdconnect.com/atd">
28
		        <wsse:Username>' . $user . '</wsse:Username>
29
		        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">' . $pass . '</wsse:Password>
30
		    </wsse:UsernameToken>
31
		</wsse:Security>
32
		';
33
        
34
        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);
35
    }
36
    
37
    public static function apiCall($call,$query,$service)
38
    {
39
        $client     = new \SoapClient($service);
40
        $client->__setSoapHeaders(self::$wsshead);
41
        $response 	= $client->$call($query);
42
        return $response;
43
    }
44
    
45
    //************************************************
46
    //               Location Service
47
    //************************************************
48
    
49
    public static function getLocationByCriteria()
50
    {
51
        return self::apiCall('getLocationByCriteria','',self::$locationwsdl);
52
    }
53
    
54
    public static function getLocationCutoffTimes($location = '1213421')
55
    {
56
        return self::apiCall('getLocationCutoffTimes',array('location' => $location),self::$locationwsdl);
57
    }
58
    
59
    public static function getDistributionCenter($dc = '059')
60
    {
61
        return self::apiCall('getDistributionCenter',array('servicingDC' => $dc),self::$locationwsdl);
62
    }
63
    
64
        
65
    //************************************************
66
    //               Brand Styles Service
67
    //************************************************
68
    
69
    
70
    public static function getBrand($location, $product = null)
71
    {
72
    	return self::apiCall('getBrand',array('locationNumber' => $location,'productGroup' => $product),self::$brandwsdl);
73
    }
74
    
75
    public static function getStyle($location, $brand = null)
76
    {
77
    	return self::apiCall('getStyle',array('locationNumber' => $location,'brand' => $brand),self::$brandwsdl);
78
    }
79
    
80
    
81
    //************************************************
82
    //               Products Service
83
    //************************************************
84
    
85
    
86
    
87
    
88
    public static function getProdBrand($location, $product = null)
89
    {
90
    	return self::apiCall('getProdBrand',array('locationNumber' => $location,'productGroup' => $product),self::$productwsdl);
91
    }
92
    
93
    public static function getProductByCriteria($search)
94
    {
95
        return self::apiCall('getProductByCriteria',$search,self::$productwsdl);
96
    }
97
    
98
    public static function getProductByKeyword($search)
99
    {
100
        return self::apiCall('getProductByKeyword',$search,self::$productwsdl);
101
    }
102
    
103
    //************************************************
104
    //               Order Service
105
    //************************************************
106
    
107
    public static function placeOrder($order)
108
    {
109
        return self::apiCall('placeOrder',$order,self::$orderwsdl);
110
    }
111
    
112
    public static function previewOrder($order)
113
    {
114
        return self::apiCall('previewOrder',$order,self::$orderwsdl);
115
    }
116
    
117
    //************************************************
118
    //               Order Status Service
119
    //************************************************
120
    
121
    public static function getOrderDetail($status)
122
    {
123
        return self::apiCall('getOrderDetail',$status,self::$statuswsdl);
124
    }
125
    
126
    public static function getOrderStatusByCriteria($criteria)
127
    {
128
        return self::apiCall('getOrderStatusByCriteria',$status,self::$statuswsdl);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $status seems to be never defined.
Loading history...
129
    }
130
    
131
    
132
    
133
    
134
    
135
}
136