Files
crmApi/apps/ticket/selectors.py
T
2024-01-22 13:01:42 +03:30

33 lines
1.6 KiB
Python

from apps.ticket.models import Ticket as TicketModel, TicketComment as TicketCommentModel
from apps.cuser.models import CuserRole as CuserRoleModel
from rest_framework import exceptions
def list_ticket(cuser_role_uuid: str, workspace_uuid: str) -> TicketModel:
try:
role_type_name = CuserRoleModel.objects.get(uuid=cuser_role_uuid).role_type.role_name_en
if role_type_name == 'workspace_operator':
tickets = TicketModel.objects.filter(sys_ws__uuid=workspace_uuid).order_by('-created_at')
else:
tickets = TicketModel.objects.filter(cuser_role__uuid=cuser_role_uuid, sys_ws__uuid=workspace_uuid).order_by('-created_at')
return tickets
except Exception as exp:
message = f'Error Fetching List tickets: {exp}'
raise exceptions.ValidationError({'error': message})
def retrieve_ticket_comments(ticket_id: int, cuser_role_uuid: str, workspace_uuid: str) -> TicketCommentModel:
try:
role_type_name = CuserRoleModel.objects.get(uuid=cuser_role_uuid).role_type.role_name_en
if role_type_name == 'workspace_operator':
ticket = TicketModel.objects.get(id=ticket_id, sys_ws__uuid=workspace_uuid)
else:
ticket = TicketModel.objects.get(id=ticket_id, cuser_role__uuid=cuser_role_uuid, sys_ws__uuid=workspace_uuid)
ticket_comments = TicketCommentModel.objects.filter(ticket=ticket, sys_ws__uuid=workspace_uuid)
return ticket_comments
except Exception as exp:
message = f'Error Fetching List ticket comments: {exp}'
raise exceptions.ValidationError({'error': message})