getAllTickets method
Fetch all tickets with employee profiles (for employer home screen)
Implementation
Future<Map<String, dynamic>> getAllTickets({
required String projectID,
required String tenantProductID,
List<String>? trackerIDs,
}) async {
const query = r'''
query getAllTickets($projectID: UUID!, $tenantProductID: UUID!, $trackerIDs: [UUID!]) {
projectTickets(projectID: $projectID, tenantProductID: $tenantProductID, filters: { trackerIDs: $trackerIDs }) {
success
message
total
projectTickets {
id
ticketNumber
subject
description
tracker {
id
name
}
status {
id
name
}
priority {
id
name
}
userAuthor {
id
username
email
}
tenantAuthor {
id
username
email
firstName
lastName
phoneNumber
location
language
profile_Photo
image
video
createdAt
updatedAt
}
assignee {
id
username
email
firstName
lastName
phoneNumber
location
language
profile_Photo
}
customValues
totalTimeSpent
hasActiveTimer
canEdit
canDelete
createdAt
updatedAt
}
}
}
''';
final variables = {
'projectID': projectID,
'tenantProductID': tenantProductID,
if (trackerIDs != null && trackerIDs.isNotEmpty) 'trackerIDs': trackerIDs,
};
print("Fetching all tickets with variables: $variables");
final result = await _api.graphql(query, variables);
final ticketsResponse = result['projectTickets'];
if (ticketsResponse != null) {
print("getAllTickets service returning: ${ticketsResponse['total']} tickets");
return ticketsResponse;
}
return {
'success': false,
'message': 'Failed to fetch tickets'
};
}