getTrackerCustomFields method

Future<Map<String, dynamic>> getTrackerCustomFields({
  1. required String trackerID,
  2. required String tenantProductID,
  3. required String projectID,
  4. String? customFieldID,
})

Fetch custom fields dynamically based on tracker

Implementation

Future<Map<String, dynamic>> getTrackerCustomFields({
  required String trackerID,
  required String tenantProductID,
  required String projectID,
  String? customFieldID,
}) async {
  const query = r'''
    query GetTrackerCustomFields($trackerID: UUID!, $tenantProductID: UUID!, $projectID: UUID!, $customFieldID: UUID) {
      getTrackerCustomFields(trackerID: $trackerID, tenantProductID: $tenantProductID, projectID: $projectID, customFieldID: $customFieldID) {
        success
        message
        customFields {
          id
          name
          format
          description
          required
          placeholder
          options {
            label
            value
            selected
          }
          settings
        }
      }
    }
  ''';

  final result = await _api.graphql(query, {
    'trackerID': trackerID,
    'tenantProductID': tenantProductID,
    'projectID': projectID,
    if (customFieldID != null) 'customFieldID': customFieldID,
  });

  return result['getTrackerCustomFields'] ?? {
    'success': false,
    'message': 'Failed to fetch custom fields'
  };
}