production-taskbar / backend / helpdesk / reciever.py
reciever.py
Raw
from typing import Any

from .models import Issue
from .redmine import fetch_redmine_issue, is_redmine, save_redmine_fields
from .sysaid import fetch_sysaid_ticket, is_sysaid, save_sysaid_fields


def synchronize_reciever(instance: Issue | Any) -> Issue:
    if (instance):
        department = instance.department
        reciever = department.reciever
        if (is_sysaid(reciever)):
            result = fetch_sysaid_ticket(instance.issue_id)
            if (result):
                instance = save_sysaid_fields(issue=instance, fields=result[0])

        elif (is_redmine(reciever)):
            result = fetch_redmine_issue(
                reciever.backend_configuration,
                instance.issue_id,
                "include=journals",
            )
            if (result):
                instance = save_redmine_fields(issue=instance, fields=result)

    return instance