function update_webhook($data) { // auth $apiContext = $this->apiContext(); // set webhooks $webhook = new Webhook(); try { $WebhookList = $webhook->get($data['id'], $apiContext); $valid = true; } catch (Exception $ex) { $this->LoggingManager->log(print_r($ex, true), 'DEBUG'); $valid = false; } if ($valid === true) { $webhookEventTypes = array(); for ($i = 0, $n = count($data['data']); $i < $n; $i++) { if ($data['data'][$i]['name'] != '') { $webhookEvent = new WebhookEventType(); $webhookEvent->setName($data['data'][$i]['name']); $webhookEventTypes[] = $webhookEvent; } } $patch = new Patch(); $patch->setOp("replace")->setPath("/event_types")->setValue($webhookEventTypes); $patchRequest = new PatchRequest(); $patchRequest->addPatch($patch); } try { $WebhookList->update($patchRequest, $apiContext); $success = true; } catch (Exception $ex) { $this->LoggingManager->log(print_r($ex, true), 'DEBUG'); $success = false; } $avaliable_data = $this->available_webhooks(); for ($i = 0, $n = count($avaliable_data); $i < $n; $i++) { $this->delete_config($avaliable_data[$i]['name']); } $sql_data_array = array(); for ($i = 0, $n = count($data['data']); $i < $n; $i++) { if ($data['data'][$i]['name'] != '') { $sql_data_array[] = array('config_key' => $data['data'][$i]['name'], 'config_value' => $data['data'][$i]['orders_status']); } } $this->save_config($sql_data_array); }