示例#1
0
    def _make_request(self):
        action_to_past_tense = {"create": "created", "link": "linked"}

        try:
            req = send_and_save_sentry_app_request(
                self._build_url(),
                self.sentry_app,
                self.install.organization_id,
                "external_issue.{}".format(action_to_past_tense[self.action]),
                headers=self._build_headers(),
                method="POST",
                data=self.body,
            )
            body = safe_urlread(req)
            response = json.loads(body)
        except Exception as e:
            logger.info(
                "issue-link-requester.error",
                extra={
                    "sentry_app": self.sentry_app.slug,
                    "install": self.install.uuid,
                    "project": self.group.project.slug,
                    "group": self.group.id,
                    "uri": self.uri,
                    "error_message": str(e),
                },
            )
            response = {}

        if not self._validate_response(response):
            raise APIError()

        return response
示例#2
0
    def _make_request(self):
        try:
            body = safe_urlread(
                send_and_save_sentry_app_request(
                    self._build_url(),
                    self.sentry_app,
                    self.install.organization_id,
                    "select_options.requested",
                    headers=self._build_headers(),
                ))

            response = json.loads(body)
        except Exception as e:
            logger.info(
                "select-requester.error",
                extra={
                    "sentry_app": self.sentry_app.slug,
                    "install": self.install.uuid,
                    "project": self.project and self.project.slug,
                    "uri": self.uri,
                    "error_message": six.text_type(e),
                },
            )
            response = {}

        if not self._validate_response(response):
            raise APIError()

        return self._format_response(response)
示例#3
0
    def _make_request(self) -> Mapping[str, Union[bool, str]]:

        try:
            req = send_and_save_sentry_app_request(
                self._build_url(),
                self.sentry_app,
                self.install.organization_id,
                "alert_rule_action.requested",
                headers=self._build_headers(),
                method=self.http_method,
                data=self.body,
            )
        except Exception as e:
            logger.info(
                "alert_rule_action.error",
                extra={
                    "sentry_app_slug": self.sentry_app.slug,
                    "install_uuid": self.install.uuid,
                    "uri": self.uri,
                    "error_message": str(e),
                },
            )
            message = f"{self.sentry_app.name}: {str(e.response.text) or DEFAULT_ERROR_MESSAGE}"
            # Bubble up error message from Sentry App to the UI for the user.
            return {"success": False, "message": message}

        body_raw = safe_urlread(req)
        body = body_raw.decode() if body_raw else None
        message = f"{self.sentry_app.name}: {body or DEFAULT_SUCCESS_MESSAGE}"
        return {"success": True, "message": message}
    def _make_request(self):
        try:
            req = send_and_save_sentry_app_request(
                self._build_url(),
                self.sentry_app,
                self.install.organization_id,
                "alert_rule_action.requested",
                headers=self._build_headers(),
                method=self.http_method,
                data=self.body,
            )
            body = safe_urlread(req)
            response = {
                "success": True,
                "message": "",
                "body": json.loads(body)
            }
        except Exception as e:
            logger.info(
                "alert_rule_action.error",
                extra={
                    "sentry_app_slug": self.sentry_app.slug,
                    "install_uuid": self.install.uuid,
                    "uri": self.uri,
                    "error_message": str(e),
                },
            )
            # Bubble up error message from Sentry App to the UI for the user.
            response = {
                "success": False,
                "message": str(e.response.text),
                "body": {}
            }

        return response
示例#5
0
    def _make_request(self):
        try:
            req = send_and_save_sentry_app_request(
                self._build_url(),
                self.sentry_app,
                self.install.organization_id,
                "alert_rule_action.requested",
                headers=self._build_headers(),
                method=self.http_method,
                data=self.body,
            )
            body = safe_urlread(req)
            response = json.loads(body)
        except Exception as e:
            logger.info(
                "alert_rule_action.error",
                extra={
                    "sentry_app_slug": self.sentry_app.slug,
                    "install_uuid": self.install.uuid,
                    "uri": self.uri,
                    "error_message": str(e),
                },
            )
            response = {}

        return response