@@ -104,47 +104,50 @@ private function execute(array $events, string $payload, Document $webhook, Docu
104104 $ httpPass = $ webhook ->getAttribute ('httpPass ' );
105105 $ ch = \curl_init ($ webhook ->getAttribute ('url ' ));
106106
107- \curl_setopt ($ ch , CURLOPT_CUSTOMREQUEST , 'POST ' );
108- \curl_setopt ($ ch , CURLOPT_POSTFIELDS , $ payload );
109- \curl_setopt ($ ch , CURLOPT_HEADER , 0 );
110- \curl_setopt ($ ch , CURLOPT_RETURNTRANSFER , 1 );
111- \curl_setopt ($ ch , CURLOPT_TIMEOUT , 15 );
112- \curl_setopt ($ ch , CURLOPT_MAXFILESIZE , self ::MAX_FILE_SIZE );
113- \curl_setopt ($ ch , CURLOPT_USERAGENT , \sprintf (
114- APP_USERAGENT ,
115- System::getEnv ('_APP_VERSION ' , 'UNKNOWN ' ),
116- System::getEnv ('_APP_EMAIL_SECURITY ' , System::getEnv ('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS ' , APP_EMAIL_SECURITY ))
117- ));
118- \curl_setopt (
119- $ ch ,
120- CURLOPT_HTTPHEADER ,
121- [
122- 'Content-Type: application/json ' ,
123- 'Content-Length: ' . \strlen ($ payload ),
124- 'X- ' . APP_NAME . '-Webhook-Id: ' . $ webhook ->getId (),
125- 'X- ' . APP_NAME . '-Webhook-Events: ' . implode (', ' , $ events ),
126- 'X- ' . APP_NAME . '-Webhook-Name: ' . $ webhook ->getAttribute ('name ' , '' ),
127- 'X- ' . APP_NAME . '-Webhook-User-Id: ' . $ user ->getId (),
128- 'X- ' . APP_NAME . '-Webhook-Project-Id: ' . $ project ->getId (),
129- 'X- ' . APP_NAME . '-Webhook-Signature: ' . $ signature ,
130- ]
131- );
132- curl_setopt ($ ch , CURLOPT_MAXREDIRS , 5 );
133-
134- if (!$ webhook ->getAttribute ('security ' , true )) {
135- \curl_setopt ($ ch , CURLOPT_SSL_VERIFYHOST , false );
136- \curl_setopt ($ ch , CURLOPT_SSL_VERIFYPEER , false );
137- }
107+ try {
108+ \curl_setopt ($ ch , CURLOPT_CUSTOMREQUEST , 'POST ' );
109+ \curl_setopt ($ ch , CURLOPT_POSTFIELDS , $ payload );
110+ \curl_setopt ($ ch , CURLOPT_HEADER , 0 );
111+ \curl_setopt ($ ch , CURLOPT_RETURNTRANSFER , 1 );
112+ \curl_setopt ($ ch , CURLOPT_TIMEOUT , 15 );
113+ \curl_setopt ($ ch , CURLOPT_MAXFILESIZE , self ::MAX_FILE_SIZE );
114+ \curl_setopt ($ ch , CURLOPT_USERAGENT , \sprintf (
115+ APP_USERAGENT ,
116+ System::getEnv ('_APP_VERSION ' , 'UNKNOWN ' ),
117+ System::getEnv ('_APP_EMAIL_SECURITY ' , System::getEnv ('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS ' , APP_EMAIL_SECURITY ))
118+ ));
119+ \curl_setopt (
120+ $ ch ,
121+ CURLOPT_HTTPHEADER ,
122+ [
123+ 'Content-Type: application/json ' ,
124+ 'Content-Length: ' . \strlen ($ payload ),
125+ 'X- ' . APP_NAME . '-Webhook-Id: ' . $ webhook ->getId (),
126+ 'X- ' . APP_NAME . '-Webhook-Events: ' . implode (', ' , $ events ),
127+ 'X- ' . APP_NAME . '-Webhook-Name: ' . $ webhook ->getAttribute ('name ' , '' ),
128+ 'X- ' . APP_NAME . '-Webhook-User-Id: ' . $ user ->getId (),
129+ 'X- ' . APP_NAME . '-Webhook-Project-Id: ' . $ project ->getId (),
130+ 'X- ' . APP_NAME . '-Webhook-Signature: ' . $ signature ,
131+ ]
132+ );
133+ \curl_setopt ($ ch , CURLOPT_MAXREDIRS , 5 );
134+
135+ if (!$ webhook ->getAttribute ('security ' , true )) {
136+ \curl_setopt ($ ch , CURLOPT_SSL_VERIFYHOST , false );
137+ \curl_setopt ($ ch , CURLOPT_SSL_VERIFYPEER , false );
138+ }
138139
139- if (!empty ($ httpUser ) && !empty ($ httpPass )) {
140- \curl_setopt ($ ch , CURLOPT_USERPWD , "$ httpUser: $ httpPass " );
141- \curl_setopt ($ ch , CURLOPT_HTTPAUTH , CURLAUTH_BASIC );
142- }
140+ if (!empty ($ httpUser ) && !empty ($ httpPass )) {
141+ \curl_setopt ($ ch , CURLOPT_USERPWD , "$ httpUser: $ httpPass " );
142+ \curl_setopt ($ ch , CURLOPT_HTTPAUTH , CURLAUTH_BASIC );
143+ }
143144
144- $ responseBody = \curl_exec ($ ch );
145- $ curlError = \curl_error ($ ch );
146- $ statusCode = curl_getinfo ($ ch , CURLINFO_RESPONSE_CODE );
147- \curl_close ($ ch );
145+ $ responseBody = \curl_exec ($ ch );
146+ $ curlError = \curl_error ($ ch );
147+ $ statusCode = \curl_getinfo ($ ch , CURLINFO_RESPONSE_CODE );
148+ } finally {
149+ \curl_close ($ ch );
150+ }
148151
149152 if (!empty ($ curlError ) || $ statusCode >= 400 ) {
150153 $ dbForPlatform ->increaseDocumentAttribute ('webhooks ' , $ webhook ->getId (), 'attempts ' , 1 );
0 commit comments