Exemple #1
0
    def on_post(self, req, resp):
        barcode = req.get_param('barcode', required=True)
        action = req.get_param('action', required=True)
        server_domain = req.get_param('server_domain', required=True)

        if server_domain != settings.OFF_SERVER_DOMAIN:
            logger.info(
                "Rejecting webhook event from {}".format(server_domain))
            resp.media = {
                'status': 'rejected',
            }
            return

        logger.info("New webhook event received for product {} (action: {}, "
                    "domain: {})".format(barcode, action, server_domain))

        if action not in ('updated', 'deleted'):
            raise falcon.HTTPBadRequest(title="invalid_action",
                                        description="action must be one of "
                                        "`deleted`, `updated`")

        if action == 'updated':
            send_ipc_event('product_updated', {
                'barcode': barcode,
            })

        elif action == 'deleted':
            send_ipc_event('product_deleted', {
                'barcode': barcode,
            })

        resp.media = {
            'status': 'scheduled',
        }
Exemple #2
0
    def on_post(self, req: falcon.Request, resp: falcon.Response):
        barcode = req.get_param("barcode", required=True)
        image_url = req.get_param("image_url", required=True)
        ocr_url = req.get_param("ocr_url", required=True)
        server_domain = req.get_param("server_domain", required=True)

        if server_domain != settings.OFF_SERVER_DOMAIN:
            logger.info("Rejecting image import from {}".format(server_domain))
            resp.media = {
                "status": "rejected",
            }
            return

        send_ipc_event(
            "import_image",
            {
                "barcode": barcode,
                "image_url": image_url,
                "ocr_url": ocr_url,
                "server_domain": server_domain,
            },
        )

        resp.media = {
            "status": "scheduled",
        }
Exemple #3
0
    def on_post(self, req, resp):
        logger.info("New insight import request")
        insight_type = req.get_param("type", required=True)
        server_domain = req.get_param("server_domain", required=True)

        if insight_type not in (t.name for t in InsightType):
            raise falcon.HTTPBadRequest(description="unknown insight type: "
                                        "'{}'".format(insight_type))

        content = req.get_param("file", required=True)

        logger.info("Insight type: '{}'".format(insight_type))

        lines = [l for l in io.TextIOWrapper(content.file)]

        send_ipc_event(
            "import_insights",
            {
                "insight_type": insight_type,
                "items": lines,
                "server_domain": server_domain,
            },
        )

        logger.info("Import scheduled")

        resp.media = {
            "status": "scheduled",
        }
def launch_object_detection_job(barcode: str, image_url: str,
                                server_domain: str):
    send_ipc_event(
        "object_detection",
        {
            "barcode": barcode,
            "image_url": image_url,
            "server_domain": server_domain
        },
    )
Exemple #5
0
    def on_post(self, req: falcon.Request, resp: falcon.Response):
        barcode = req.get_param("barcode", required=True)
        action = req.get_param("action", required=True)
        server_domain = req.get_param("server_domain", required=True)
        if server_domain != settings.OFF_SERVER_DOMAIN:
            logger.info("Rejecting webhook event from {}".format(server_domain))
            resp.media = {
                "status": "rejected",
            }
            return

        logger.info(
            "New webhook event received for product {} (action: {}, "
            "domain: {})".format(barcode, action, server_domain)
        )
        if action not in ("updated", "deleted"):
            raise falcon.HTTPBadRequest(
                title="invalid_action",
                description="action must be one of " "`deleted`, `updated`",
            )

        if action == "updated":
            send_ipc_event(
                "product_updated",
                {
                    "barcode": barcode,
                    "server_domain": server_domain,
                    # add some latency
                    "task_delay": settings.UPDATED_PRODUCT_WAIT,
                },
            )

        elif action == "deleted":
            send_ipc_event(
                "product_deleted", {"barcode": barcode, "server_domain": server_domain}
            )

        resp.media = {
            "status": "scheduled",
        }
Exemple #6
0
    def on_post(self, req, resp):
        barcode = req.get_param('barcode', required=True)
        image_url = req.get_param('image_url', required=True)
        ocr_url = req.get_param('ocr_url', required=True)
        server_domain = req.get_param('server_domain', required=True)

        if server_domain != settings.OFF_SERVER_DOMAIN:
            logger.info("Rejecting image import from {}".format(server_domain))
            resp.media = {
                'status': 'rejected',
            }
            return

        send_ipc_event('import_image', {
            'barcode': barcode,
            'image_url': image_url,
            'ocr_url': ocr_url,
        })

        resp.media = {
            'status': 'scheduled',
        }
Exemple #7
0
    def on_post(self, req, resp):
        logger.info("New insight import request")
        insight_type = req.get_param('type', required=True)

        if insight_type not in (t.name for t in InsightType):
            raise falcon.HTTPBadRequest(description="unknown insight type: "
                                        "'{}'".format(insight_type))

        content = req.get_param('file', required=True)

        logger.info("Insight type: '{}'".format(insight_type))

        lines = [l for l in io.TextIOWrapper(content.file)]

        send_ipc_event('import_insights', {
            'insight_type': insight_type,
            'items': lines,
        })

        logger.info("Import scheduled")

        resp.media = {
            'status': 'scheduled',
        }
Exemple #8
0
    def on_post(self, req: falcon.Request, resp: falcon.Response):
        send_ipc_event("download_dataset")

        resp.media = {
            "status": "scheduled",
        }
Exemple #9
0
    def on_post(self, req, resp):
        send_ipc_event('download_dataset')

        resp.media = {
            'status': 'scheduled',
        }
Exemple #10
0
    def on_post(self, req, resp):
        send_ipc_event("download_dataset")

        resp.media = {
            "status": "scheduled",
        }