Exemplo n.º 1
0
    def requirement_handler(cls, key):
        jira_result = None
        requirement_id = None
        user_id = request.args.get('user_id', '')
        user_key = request.args.get('user_key', '')
        try:
            issues = jira.search_issues(f'key={key}')
            if issues:
                issue = issues[0]
                requirement = Requirement.query.filter(Requirement.jira_id == str(issue)).first()
                if requirement:
                    cls.requirement_update_handler(requirement, issue, user_key)
                    requirement_id = requirement.id
                else:
                    cls.requirement_create_handler(issue)
                    requirement = Requirement.query.filter(Requirement.jira_id == str(issue)).first()
                    requirement_id = requirement.id
            else:
                jira_result = f'{user_id} {user_key} - jira cannot found issue with key : {key}'
                raise CannotFindObjectException(jira_result)

            jira_result = f"{user_id} {user_key} - {key} success"
            return 0
        except Exception as e:
            raise e
        finally:
            cls.create(key, jira_result, requirement_id, Jira.KEY_MAP.get('requirement'))
Exemplo n.º 2
0
    def flow_handler(cls, key):
        requirement = cls.get_requirement_by_jira_key(key)
        if not requirement:
            cls.requirement_handler(key)
            requirement = cls.get_requirement_by_jira_key(key)

        jira_result = None
        user_id = request.args.get('user_id', '')
        user_key = request.args.get('user_key', '')
        try:
            issues = jira.search_issues(f'key={key}')
            if issues:
                issue = issues[0]
                assmble_type = cls.get_assemble_type(issue)
                handler = cls.get_handler(issue)
                creator = cls.get_creator(issue)
                if assmble_type == 1:
                    jira_result = f'{user_id} {user_key} - flow would not create because of assmble_type is 1: {key}'
                    return
                data = {
                    "name": f'{key} - {issue.fields.summary}',
                    "flow_type": 1,
                    "user_test": [cls.get_user("*****@*****.**")],
                    "requirement_list": str(requirement.id),
                    "flow_assemble_id": cls.get_assemble_type(issue),
                    "project_id": cls.get_project(issue),
                    "user_dev": [handler] if handler else [],
                    "user_owner": [handler] if handler else [],
                    "user_prod": [creator] if creator else [],
                    "platform": cls.get_platform(issue),
                    "dependence": cls.get_dependence(issue),
                    "comment": cls.make_comment(requirement),
                    "jira_id": key,
                    "creator": cls.get_creator(issue)
                }
            else:
                jira_result = f'{user_id} {user_key} - jira cannot found issue with key : {key}'
                raise CannotFindObjectException(jira_result)
            response = cls.flow_trpc.requests('post', '/flow/', body=data)
            if isinstance(response, dict):
                if response.get('code') == 0:
                    jira_result = f"{user_id} {user_key} - {key} success"
                else:
                    jira_result = f"{user_id} {user_key} - {key} {response.get('message', 'nothing in message')}"
            else:
                jira_result = f"{user_id} {user_key} - {key} unknown!"
            return 0
        except Exception as e:
            current_app.logger.error(e)
            current_app.logger.error(traceback.format_exc())
            jira_result = f'{user_id} {user_key} - {key} - {str(e)}'
            raise e
        finally:
            cls.create(key, jira_result, requirement.id,
                       Jira.KEY_MAP.get('flow'))