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);
}