async def update_case(self, case_id, url, api_key, title=None, description=None, tlp=None, severity=None, tags=None, tags_mode="append"): self.logger.info(f'Updating case {case_id} in TheHive...') if not url.startswith("http"): url = f"http://{url}" api = TheHiveApi(url, api_key) case_helper = CaseHelper(api) case_kwargs = {} if title: case_kwargs["title"] = title if description: case_kwargs["description"] = description if tlp: case_kwargs["tlp"] = tlp if severity: case_kwargs["severity"] = severity if tags is not None: if tags_mode == "append": tags = case_helper(case_id).tags + tags case_kwargs["tags"] = tags return case_helper.update(case_id, **case_kwargs).id
async def close_case(self, case_id, url, api_key, resolution_status, impact_status, summary, tags=None, tags_mode="append"): self.logger.info(f'Closing case {case_id} in TheHive...') if not url.startswith("http"): url = f"http://{url}" api = TheHiveApi(url, api_key) case_helper = CaseHelper(api) case_kwargs = { "status": "Resolved", "resolutionStatus": resolution_status, "impactStatus": impact_status, "summary": summary } if tags is not None: if tags_mode == "append": tags = case_helper(case_id).tags + tags case_kwargs["tags"] = tags return case_helper.update(case_id, **case_kwargs).id