PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.0
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.0
V3.3.3 V3.3.2 3.3.1 V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 All 140 releases
bit-form / includes / Core / Integration / Twilio / TwilioHandler.php

TwilioHandler.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 2.0, at includes/Core/Integration/Twilio/TwilioHandler.php

96 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Twilio Integration
5 *
6 */
7
8 namespace BitCode\BitForm\Core\Integration\Twilio;
9
10 use BitCode\BitForm\Core\Integration\IntegrationHandler;
11 use BitCode\BitForm\Core\Util\HttpHelper;
12 use WP_Error;
13
14 final class TwilioHandler {
15 private $_integrationID;
16 public static $apiBaseUri = 'https://api.twilio.com/2010-04-01';
17 protected $_defaultHeader;
18
19 public function __construct($integrationID) {
20 $this->_integrationID = $integrationID;
21 }
22
23 public static function registerAjax() {
24 add_action('wp_ajax_bitforms_twilio_authorization', [__CLASS__, 'checkAuthorization']);
25 }
26
27 public static function checkAuthorization() {
28 if (isset($_REQUEST['_ajax_nonce']) && wp_verify_nonce($_REQUEST['_ajax_nonce'], 'bitforms_save')) {
29 $inputJSON = file_get_contents('php://input');
30 $tokenRequestParams = json_decode($inputJSON);
31
32 if (
33 empty($tokenRequestParams->sid)
34 || empty($tokenRequestParams->token)
35 || empty($tokenRequestParams->from_num)
36 ) {
37 wp_send_json_error(
38 __(
39 'Requested parameter is empty',
40 'bit-integrations'
41 ),
42 400
43 );
44 }
45 $header = [
46 'Authorization' => 'Basic ' . base64_encode("$tokenRequestParams->sid:$tokenRequestParams->token"),
47 'Accept' => '*/*',
48 'verify' => false
49 ];
50 $apiEndpoint = self::$apiBaseUri . '/Accounts';
51
52 $apiResponse = HttpHelper::get($apiEndpoint, null, $header);
53
54 $xml = simplexml_load_string($apiResponse);
55 $json = json_encode($xml);
56 $response = json_decode($json, true);
57
58 if (array_key_exists('RestException', $response)) {
59 wp_send_json_error(
60 'Unauthorize',
61 400
62 );
63 } else {
64 wp_send_json_success($apiResponse, 200);
65 }
66 }
67 }
68
69 public function execute(IntegrationHandler $integrationHandler, $integrationData, $fieldValues, $entryID, $logID) {
70 $integrationDetails = $integrationData->integration_details;
71 if (is_string($integrationDetails)) {
72 $integrationDetails = json_decode($integrationDetails);
73 }
74 $fieldMap = $integrationDetails->field_map;
75 $sid = $integrationDetails->sid;
76 $token = $integrationDetails->token;
77 $from_num = $integrationDetails->from_num;
78 if (
79 empty($sid)
80 || empty($token)
81 || empty($from_num)
82 || empty($fieldMap)
83 ) {
84 $error = new WP_Error('REQ_FIELD_EMPTY', __('SID, Auth Token,From Number and mapping fields are required for rapidmail api', 'bitform'));
85 return $error;
86 }
87 $recordApiHelper = new RecordApiHelper($integrationDetails, $sid, $token, $from_num, $logID);
88 $twilioResponse = $recordApiHelper->executeRecordApi(
89 $this->_integrationID,
90 $fieldValues,
91 $fieldMap
92 );
93 return $twilioResponse;
94 }
95 }
96