Exemplo n.º 1
0
    def register_webhooks(self):
        webhooks = ["orders/create", "orders/paid", "orders/fulfilled"]

        url = get_shopify_url('admin/webhooks.json', self)
        created_webhooks = [d.method for d in self.webhooks]

        for method in webhooks:
            if method in created_webhooks:
                continue

            session = get_request_session()
            try:
                d = session.post(
                    url,
                    data=json.dumps({
                        "webhook": {
                            "topic":
                            method,
                            "address":
                            get_webhook_address(
                                connector_name='shopify_connection',
                                method='store_request_data'),
                            "format":
                            "json"
                        }
                    }),
                    headers=get_header(self))
                d.raise_for_status()
                self.update_webhook_table(method, d.json())
            except Exception as e:
                make_shopify_log(status="Warning",
                                 message=e.message,
                                 exception=False)
Exemplo n.º 2
0
def get_request(url, auth=None):
    res = None
    if not auth:
        return

    try:
        s = get_request_session()
        res = s.get(url, data={}, auth=(auth.api_key, auth.api_secret))
        res.raise_for_status()
        return res.json()
    except Exception, exc:
        raise_exception(res, exc)
Exemplo n.º 3
0
def sync_item_from_shopify(shopify_settings, item):
    url = get_shopify_url(
        "/admin/products/{0}.json".format(item.get("product_id")),
        shopify_settings)
    session = get_request_session()

    try:
        res = session.get(url, headers=get_header(shopify_settings))
        res.raise_for_status()

        shopify_item = res.json()["product"]
        make_item(shopify_settings.warehouse, shopify_item)
    except Exception as e:
        raise e
Exemplo n.º 4
0
    def unregister_webhooks(self):
        session = get_request_session()
        deleted_webhooks = []

        for d in self.webhooks:
            url = get_shopify_url(
                'admin/webhooks/{0}.json'.format(d.webhook_id), self)
            try:
                res = session.delete(url, headers=get_header(self))
                res.raise_for_status()
                deleted_webhooks.append(d)
            except Exception as e:
                dataent.log_error(message=dataent.get_traceback(),
                                  title=e.message[:140])

        for d in deleted_webhooks:
            self.remove(d)
Exemplo n.º 5
0
def make_get_request(url, auth=None, headers=None, data=None):
	if not auth:
		auth = ''
	if not data:
		data = {}
	if not headers:
		headers = {}

	try:
		s = get_request_session()
		dataent.flags.integration_request = s.get(url, data={}, auth=auth, headers=headers)
		dataent.flags.integration_request.raise_for_status()
		return dataent.flags.integration_request.json()

	except Exception as exc:
		dataent.log_error(dataent.get_traceback())
		raise exc
Exemplo n.º 6
0
def make_post_request(url, auth=None, headers=None, data=None):
	if not auth:
		auth = ''
	if not data:
		data = {}
	if not headers:
		headers = {}

	try:
		s = get_request_session()
		dataent.flags.integration_request = s.post(url, data=data, auth=auth, headers=headers)
		dataent.flags.integration_request.raise_for_status()

		if dataent.flags.integration_request.headers.get("content-type") == "text/plain; charset=utf-8":
			return parse_qs(dataent.flags.integration_request.text)

		return dataent.flags.integration_request.json()
	except Exception as exc:
		dataent.log_error()
		raise exc