diff options
Diffstat (limited to 'public/catalog/controller/extension/openbay/etsy.php')
-rw-r--r-- | public/catalog/controller/extension/openbay/etsy.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/public/catalog/controller/extension/openbay/etsy.php b/public/catalog/controller/extension/openbay/etsy.php new file mode 100644 index 0000000..9ced310 --- /dev/null +++ b/public/catalog/controller/extension/openbay/etsy.php @@ -0,0 +1,69 @@ +<?php +class ControllerExtensionOpenbayEtsy extends Controller { + public function inbound() { + if ($this->config->get('etsy_status') != '1') { + $this->openbay->etsy->log('etsy/inbound - module inactive (503)'); + http_response_code(503); + exit(); + } + + $body = $this->request->post; + + if (!isset($body['action']) || !isset($body['auth'])) { + $this->openbay->etsy->log('etsy/inbound - action or auth data not set (401)'); + http_response_code(401); + exit(); + } + + $incoming_token = isset($body['auth']['token']) ? $body['auth']['token'] : ''; + + if (!hash_equals($this->config->get('etsy_token'), $incoming_token)) { + $this->openbay->etsy->log('etsy/inbound - Auth failed (401): ' . $incoming_token); + http_response_code(401); + exit(); + } + + $data = array(); + + if (isset($body['data']) && !empty($body['data'])) { + $decrypted = $this->openbay->decrypt($body['data'], $this->openbay->etsy->getEncryptionKey(), $this->openbay->etsy->getEncryptionIv()); + + if (!$decrypted) { + $this->openbay->etsy->log('etsy/inbound Failed to decrypt data'); + http_response_code(400); + exit(); + } + + $data = json_decode($decrypted); + } + + switch ($body['action']) { + case 'orders': + $this->load->model('extension/openbay/etsy_order'); + + $this->openbay->etsy->log('Orders action found'); + + $this->model_extension_openbay_etsy_order->inbound($data); + + break; + case 'products'; + $this->load->model('extension/openbay/etsy_product'); + + $this->model_extension_openbay_etsy_product->inbound($data); + + break; + } + } + + public function eventAddOrderHistory($route, $data) { + $this->openbay->etsy->log('eventAddOrderHistory Event fired: ' . $route); + + if (isset($data[0]) && !empty($data[0])) { + $this->load->model('extension/openbay/etsy_order'); + + $this->openbay->etsy->log('Order ID: ' . (int)$data[0]); + + $this->model_extension_openbay_etsy_order->addOrderHistory((int)$data[0]); + } + } +} |