Exemplo n.º 1
0
Arquivo: cases.py Projeto: code42/py42
    def update(
        self,
        case_number,
        name=None,
        subject=None,
        assignee=None,
        description=None,
        findings=None,
        status=None,
    ):
        current_case_data = self.get(case_number).data

        data = {
            "assignee": assignee or current_case_data.get("assignee"),
            "description": description or current_case_data.get("description"),
            "findings": findings or current_case_data.get("findings"),
            "name": name or current_case_data.get("name"),
            "subject": subject or current_case_data.get("subject"),
            "status": status or current_case_data.get("status"),
        }
        try:
            return self._connection.put(f"{self._uri_prefix}/{case_number}", json=data)
        except Py42BadRequestError as err:
            if "NO_EDITS_ONCE_CLOSED" in err.response.text:
                raise Py42UpdateClosedCaseError(err)
            _handle_common_invalid_case_parameters_errors(err, name)
Exemplo n.º 2
0
Arquivo: cases.py Projeto: code42/py42
def _handle_common_invalid_case_parameters_errors(base_err, name):
    if "NAME_EXISTS" in base_err.response.text:
        raise Py42CaseNameExistsError(base_err, name)
    elif "NO_EDITS_ONCE_CLOSED" in base_err.response.text:
        raise Py42UpdateClosedCaseError(base_err)
    elif "DESCRIPTION_TOO_LONG" in base_err.response.text:
        raise Py42DescriptionLimitExceededError(base_err)
    elif "INVALID_USER" in base_err.response.text:
        if "subject" in base_err.response.text:
            raise Py42InvalidCaseUserError(base_err, "subject")
        elif "assignee" in base_err.response.text:
            raise Py42InvalidCaseUserError(base_err, "assignee")
    raise
Exemplo n.º 3
0
    def delete(self, case_number, event_id):
        """Deletes an event from the case.

        Args:
            case_number (int): Case number of the case.
            event_id (str): Event id to remove from case.

        Returns:
            :class:`py42.response.Py42Response`
        """
        try:
            return self._connection.delete(u"{}/{}".format(
                self._uri_prefix.format(case_number), event_id))
        except Py42BadRequestError as err:
            if "CASE_IS_CLOSED" in err.response.text:
                raise Py42UpdateClosedCaseError(err)
            raise
Exemplo n.º 4
0
    def add(self, case_number, event_id):
        """Adds an event to the case.

        Args:
            case_number (int): Case number of the case.
            event_id (str): Event id to add to the case.

        Returns:
            :class:`py42.response.Py42Response`
        """
        try:
            return self._connection.post(u"{}/{}".format(
                self._uri_prefix.format(case_number), event_id))
        except Py42BadRequestError as err:
            if "CASE_IS_CLOSED" in err.response.text:
                raise Py42UpdateClosedCaseError(err)
            elif "CASE_ALREADY_HAS_EVENT" in err.response.text:
                raise Py42CaseAlreadyHasEventError(err)
            else:
                raise
Exemplo n.º 5
0
def update_on_a_closed_case_error(custom_error):
    return Py42UpdateClosedCaseError(custom_error)