@@ -34,171 +34,173 @@ class Services_Zencoder_Exception extends ErrorException {}
34
34
35
35
class Services_Zencoderextends Services_Zencoder_Base
36
36
{
37
- const USER_AGENT ='ZencoderPHP v2.0 ' ;
37
+ const USER_AGENT ='ZencoderPHP v2.0 ' ;
38
38
39
- /**
40
- * Contains the HTTP communication class
41
- */
42
- protected $ http ;
43
- /**
44
- * Contains the default API version
45
- */
46
- protected $ version ;
39
+ /**
40
+ * Contains the HTTP communication class
41
+ */
42
+ protected $ http ;
43
+ /**
44
+ * Contains the default API version
45
+ */
46
+ protected $ version ;
47
47
48
- /**
49
- * Initialize the Services_Zencoder class and sub-classes.
50
- *
51
- * @param string $api_key API Key
52
- * @param string $api_version API version
53
- * @param string $api_host API host
54
- */
55
- public function __construct (
56
- $ api_key =NULL ,
57
- $ api_version ='v2 ' ,
58
- $ api_host ='https://app.zencoder.com '
59
- ) {
60
- // Check that library dependencies are met
61
- if (strnatcmp (phpversion (),'5.2.0 ' ) <0 ) {
62
- throw new Services_Zencoder_Exception ('PHP version 5.2 or higher is required. ' );
48
+ /**
49
+ * Initialize the Services_Zencoder class and sub-classes.
50
+ *
51
+ * @param string $api_key API Key
52
+ * @param string $api_version API version
53
+ * @param string $api_host API host
54
+ */
55
+ public function __construct (
56
+ $ api_key =NULL ,
57
+ $ api_version ='v2 ' ,
58
+ $ api_host ='https://app.zencoder.com '
59
+ )
60
+ {
61
+ // Check that library dependencies are met
62
+ if (strnatcmp (phpversion (),'5.2.0 ' ) <0 ) {
63
+ throw new Services_Zencoder_Exception ('PHP version 5.2 or higher is required. ' );
64
+ }
65
+ if (!function_exists ('json_encode ' )) {
66
+ throw new Services_Zencoder_Exception ('JSON support must be enabled. ' );
67
+ }
68
+ if (!function_exists ('curl_init ' )) {
69
+ throw new Services_Zencoder_Exception ('cURL extension must be enabled. ' );
70
+ }
71
+ $ this ->version =$ api_version ;
72
+ $ this ->http =new Services_Zencoder_Http (
73
+ $ api_host ,
74
+ array ("curlopts " =>array (
75
+ CURLOPT_USERAGENT =>self ::USER_AGENT ,
76
+ CURLOPT_CAINFO =>dirname (__FILE__ ) ."/zencoder_ca_chain.crt " ,
77
+ ),"api_key " =>$ api_key )
78
+ );
79
+ $ this ->accounts =new Services_Zencoder_Accounts ($ this );
80
+ $ this ->inputs =new Services_Zencoder_Inputs ($ this );
81
+ $ this ->jobs =new Services_Zencoder_Jobs ($ this );
82
+ $ this ->notifications =new Services_Zencoder_Notifications ($ this );
83
+ $ this ->outputs =new Services_Zencoder_Outputs ($ this );
63
84
}
64
- if (!function_exists ('json_encode ' )) {
65
- throw new Services_Zencoder_Exception ('JSON support must be enabled. ' );
66
- }
67
- if (!function_exists ('curl_init ' )) {
68
- throw new Services_Zencoder_Exception ('cURL extension must be enabled. ' );
85
+
86
+ /**
87
+ * GET the resource at the specified path.
88
+ *
89
+ * @param string $path Path to the resource
90
+ * @param array $params Query string parameters
91
+ * @param array $opts Optional overrides
92
+ *
93
+ * @return object The object representation of the resource
94
+ */
95
+ public function retrieveData ($ path ,array $ params =array (),array $ opts =array ())
96
+ {
97
+ return empty ($ params )
98
+ ?$ this ->_processResponse ($ this ->http ->get ($ this ->_getApiPath ($ opts ) .$ path ))
99
+ :$ this ->_processResponse (
100
+ $ this ->http ->get ($ this ->_getApiPath ($ opts ) .$ path ."? " .http_build_query ($ params ,'' ,'& ' ))
101
+ );
69
102
}
70
- $ this ->version =$ api_version ;
71
- $ this ->http =new Services_Zencoder_Http (
72
- $ api_host ,
73
- array ("curlopts " =>array (
74
- CURLOPT_USERAGENT =>self ::USER_AGENT ,
75
- CURLOPT_CAINFO =>dirname (__FILE__ ) ."/zencoder_ca_chain.crt " ,
76
- ),"api_key " =>$ api_key )
77
- );
78
- $ this ->accounts =new Services_Zencoder_Accounts ($ this );
79
- $ this ->inputs =new Services_Zencoder_Inputs ($ this );
80
- $ this ->jobs =new Services_Zencoder_Jobs ($ this );
81
- $ this ->notifications =new Services_Zencoder_Notifications ($ this );
82
- $ this ->outputs =new Services_Zencoder_Outputs ($ this );
83
- }
84
103
85
- /**
86
- * GET the resource at the specified path.
87
- *
88
- * @param string $path Path to the resource
89
- * @param array $params Query string parameters
90
- * @param array $opts Optional overrides
91
- *
92
- * @return object The object representation of the resource
93
- */
94
- public function retrieveData ($ path ,array $ params =array (),array $ opts =array ())
95
- {
96
- return empty ($ params )
97
- ?$ this ->_processResponse ($ this ->http ->get ($ this ->_getApiPath ($ opts ) .$ path ))
98
- :$ this ->_processResponse (
99
- $ this ->http ->get ($ this ->_getApiPath ($ opts ) .$ path ."? " .http_build_query ($ params ,'' ,'& ' ))
100
- );
101
- }
104
+ /**
105
+ * DELETE the resource at the specified path.
106
+ *
107
+ * @param string $path Path to the resource
108
+ * @param array $params Query string parameters
109
+ * @param array $opts Optional overrides
110
+ *
111
+ * @return object The object representation of the resource
112
+ */
113
+ public function deleteData ($ path ,array $ opts =array ())
114
+ {
115
+ return $ this ->_processResponse ($ this ->http ->delete ($ this ->_getApiPath ($ opts ) .$ path ));
116
+ }
102
117
103
- /**
104
- * DELETE the resource at the specified path.
105
- *
106
- * @param string $path Path to the resource
107
- * @param array $params Query string parameters
108
- * @param array $opts Optional overrides
109
- *
110
- * @return object The object representation of the resource
111
- */
112
- public function deleteData ($ path ,array $ opts =array ())
113
- {
114
- return $ this ->_processResponse ($ this ->http ->delete ($ this ->_getApiPath ($ opts ) .$ path ));
115
- }
118
+ /**
119
+ * POST to the resource at the specified path.
120
+ *
121
+ * @param string $path Path to the resource
122
+ * @param array $params Query string parameters
123
+ * @param array $opts Optional overrides
124
+ *
125
+ * @return object The object representation of the resource
126
+ */
127
+ public function createData ($ path ,$ body ="" ,array $ opts =array ())
128
+ {
129
+ $ headers =array ('Content-Type ' =>'application/json ' );
130
+ return empty ($ body )
131
+ ?$ this ->_processResponse ($ this ->http ->post ($ this ->_getApiPath ($ opts ) .$ path ,$ headers ))
132
+ :$ this ->_processResponse (
133
+ $ this ->http ->post (
134
+ $ this ->_getApiPath ($ opts ) .$ path ,
135
+ $ headers ,
136
+ $ body
137
+ )
138
+ );
139
+ }
116
140
117
- /**
118
- * POST to the resource at the specified path.
119
- *
120
- * @param string $path Path to the resource
121
- * @param array $params Query string parameters
122
- * @param array $opts Optional overrides
123
- *
124
- * @return object The object representation of the resource
125
- */
126
- public function createData ($ path ,$ body ="" ,array $ opts =array ())
127
- {
128
- $ headers =array ('Content-Type ' =>'application/json ' );
129
- return empty ($ body )
130
- ?$ this ->_processResponse ($ this ->http ->post ($ this ->_getApiPath ($ opts ) .$ path ,$ headers ))
131
- :$ this ->_processResponse (
132
- $ this ->http ->post (
133
- $ this ->_getApiPath ($ opts ) .$ path ,
134
- $ headers ,
135
- $ body
136
- )
137
- );
138
- }
141
+ /**
142
+ * PUT to the resource at the specified path.
143
+ *
144
+ * @param string $path Path to the resource
145
+ * @param array $params Query string parameters
146
+ * @param array $opts Optional overrides
147
+ *
148
+ * @return object The object representation of the resource
149
+ */
150
+ public function updateData ($ path ,$ body ="" ,array $ opts =array ())
151
+ {
152
+ $ headers =array ('Content-Type ' =>'application/json ' );
153
+ return empty ($ params )
154
+ ?$ this ->_processResponse ($ this ->http ->put ($ this ->_getApiPath ($ opts ) .$ path ,$ headers ))
155
+ :$ this ->_processResponse (
156
+ $ this ->http ->put (
157
+ $ this ->_getApiPath ($ opts ) .$ path ,
158
+ $ headers ,
159
+ $ body
160
+ )
161
+ );
162
+ }
139
163
140
- /**
141
- * PUT to the resource at the specified path.
142
- *
143
- * @param string $path Path to the resource
144
- * @param array $params Query string parameters
145
- * @param array $opts Optional overrides
146
- *
147
- * @return object The object representation of the resource
148
- */
149
- public function updateData ($ path ,$ body ="" ,array $ opts =array ())
150
- {
151
- $ headers =array ('Content-Type ' =>'application/json ' );
152
- return empty ($ params )
153
- ?$ this ->_processResponse ($ this ->http ->put ($ this ->_getApiPath ($ opts ) .$ path ,$ headers ))
154
- :$ this ->_processResponse (
155
- $ this ->http ->put (
156
- $ this ->_getApiPath ($ opts ) .$ path ,
157
- $ headers ,
158
- $ body
164
+ private function _getApiPath ($ opts =array ())
165
+ {
166
+ return isset ($ opts ['no_transform ' ])
167
+ ?""
168
+ :"/api/ " . (
169
+ isset ($ opts ['api_version ' ])
170
+ ?$ opts ['api_version ' ]
171
+ :$ this ->version
159
172
)
160
- );
161
- }
162
-
163
- private function _getApiPath ($ opts =array ())
164
- {
165
- return isset ($ opts ['no_transform ' ])
166
- ?""
167
- :"/api/ " . (
168
- isset ($ opts ['api_version ' ])
169
- ?$ opts ['api_version ' ]
170
- :$ this ->version
171
- )
172
- ."/ " ;
173
- }
174
-
175
- private function _processResponse ($ response )
176
- {
177
- list ($ status ,$ headers ,$ body ) =$ response ;
178
- if ($ status ==204 || (($ status ==200 ||$ status ==201 ) &&trim ($ body ) =="" )) {
179
- return TRUE ;
173
+ ."/ " ;
180
174
}
181
- if (empty ($ headers ['Content-Type ' ])) {
182
- throw new Services_Zencoder_Exception ('Response header is missing Content-Type ' );
183
- }
184
- switch ($ headers ['Content-Type ' ]) {
185
- case 'application/json ' :
186
- case 'application/json; charset=utf-8 ' :
187
- return $ this ->_processJsonResponse ($ status ,$ headers ,$ body );
188
- break ;
175
+
176
+ private function _processResponse ($ response )
177
+ {
178
+ list ($ status ,$ headers ,$ body ) =$ response ;
179
+ if ($ status ==204 || (($ status ==200 ||$ status ==201 ) &&trim ($ body ) =="" )) {
180
+ return TRUE ;
181
+ }
182
+ if (empty ($ headers ['Content-Type ' ])) {
183
+ throw new Services_Zencoder_Exception ('Response header is missing Content-Type ' );
184
+ }
185
+ switch ($ headers ['Content-Type ' ]) {
186
+ case 'application/json ' :
187
+ case 'application/json; charset=utf-8 ' :
188
+ return $ this ->_processJsonResponse ($ status ,$ headers ,$ body );
189
+ break ;
190
+ }
191
+ throw new Services_Zencoder_Exception (
192
+ 'Unexpected content type: ' .$ headers ['Content-Type ' ]);
189
193
}
190
- throw new Services_Zencoder_Exception (
191
- 'Unexpected content type: ' .$ headers ['Content-Type ' ]);
192
- }
193
194
194
- private function _processJsonResponse ($ status ,$ headers ,$ body ) {
195
- $ decoded =json_decode ($ body );
196
- if ($ status >=200 &&$ status <300 ) {
197
- return $ decoded ;
195
+ private function _processJsonResponse ($ status ,$ headers ,$ body )
196
+ {
197
+ $ decoded =json_decode ($ body );
198
+ if ($ status >=200 &&$ status <300 ) {
199
+ return $ decoded ;
200
+ }
201
+ throw new Services_Zencoder_Exception (
202
+ "Invalid HTTP status code: " .$ status
203
+ .", body: " .$ body
204
+ );
198
205
}
199
- throw new Services_Zencoder_Exception (
200
- "Invalid HTTP status code: " .$ status
201
- .", body: " .$ body
202
- );
203
- }
204
206
}