33namespace Nurigo \Solapi \Libraries ;
44
55use Exception ;
6+ use Nurigo \Solapi \Exceptions \SolapiCurlException ;
67
78class Fetcher
89{
@@ -11,7 +12,7 @@ class Fetcher
1112 protected $ apiKey = '' ;
1213 protected $ apiSecretKey = '' ;
1314
14- const API_URL = ' https://api.solapi.com ' ;
15+ const API_URL = " https://api.solapi.com " ;
1516
1617 public static function getInstance (string $ apiKey , string $ apiSecretKey )
1718 {
@@ -31,37 +32,42 @@ public function __destruct()
3132 $ this ->apiSecretKey = '' ;
3233 }
3334
34- function request (string $ method , string $ uri , $ data = false )
35+ /**
36+ * @param string $method
37+ * @param string $uri
38+ * @param mixed $data
39+ * @return mixed
40+ * @throws Exception|SolapiCurlException CURL 관련된 Exception
41+ */
42+ public function request (string $ method , string $ uri , $ data = false )
3543 {
3644 $ authHeaderInfo = Authenticator::getAuthorizationHeaderInfo ($ this ->apiKey , $ this ->apiSecretKey );
3745 $ url = self ::API_URL . $ uri ;
3846
39- try {
40- $ curl = curl_init ();
41- curl_setopt ($ curl , CURLOPT_CUSTOMREQUEST , $ method );
42- switch ($ method ) {
43- case "POST " :
44- case "PUT " :
45- case "DELETE " :
46- if ($ data ) curl_setopt ($ curl , CURLOPT_POSTFIELDS , json_encode ($ data ));
47- break ;
48- case "GET " :
49- default :
50- if ($ data ) $ url = sprintf ("%s?%s " , $ url , http_build_query ($ data ));
51- break ;
52- }
53- $ httpHeaders = array ($ authHeaderInfo , "Content-Type: application/json " );
54- curl_setopt ($ curl , CURLOPT_HTTPHEADER , $ httpHeaders );
55- curl_setopt ($ curl , CURLOPT_URL , $ url );
56- curl_setopt ($ curl , CURLOPT_RETURNTRANSFER , true );
57- if (curl_error ($ curl )) {
58- print curl_error ($ curl );
59- }
60- $ result = curl_exec ($ curl );
61- curl_close ($ curl );
62- return json_decode ($ result );
63- } catch (Exception $ err ) {
64- return $ err ;
47+ $ curl = curl_init ();
48+ curl_setopt ($ curl , CURLOPT_CUSTOMREQUEST , $ method );
49+ switch ($ method ) {
50+ case "POST " :
51+ case "PUT " :
52+ case "DELETE " :
53+ if ($ data ) curl_setopt ($ curl , CURLOPT_POSTFIELDS , json_encode ($ data ));
54+ break ;
55+ case "GET " :
56+ default :
57+ if ($ data ) $ url = sprintf ("%s?%s " , $ url , http_build_query ($ data ));
58+ break ;
6559 }
60+ $ httpHeaders = array ($ authHeaderInfo , "Content-Type: application/json " );
61+ curl_setopt ($ curl , CURLOPT_HTTPHEADER , $ httpHeaders );
62+ curl_setopt ($ curl , CURLOPT_URL , $ url );
63+ curl_setopt ($ curl , CURLOPT_RETURNTRANSFER , true );
64+ curl_setopt ($ curl , CURLOPT_SSL_VERIFYPEER , false );
65+ curl_setopt ($ curl , CURLOPT_SSLVERSION , 3 );
66+ if (curl_error ($ curl )) {
67+ throw new SolapiCurlException (curl_error ($ curl ));
68+ }
69+ $ result = curl_exec ($ curl );
70+ curl_close ($ curl );
71+ return json_decode ($ result );
6672 }
6773}
0 commit comments