33 lines
1.6 KiB
Python
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})
|