fix: correct Tickets entity field name mappings from Autotask API

Fixed field names to use proper camelCase from Autotask API instead of
snake_case. This should resolve the issue where assigned_resource_id
was NULL because the mapper was looking for incorrect field names.

Changed mappings:
- firstResponseDateTime (was first_response_date_time)
- resolutionPlanDateTime (was resolution_plan_date_time)
- resolvedDateTime (was resolved_date_time)
- firstResponseAssignedResourceID (was first_response_assigned_resource_id)
- firstResponseInitiatingResourceID (was first_response_initiating_resource_id)
- projectID, opportunityID, contractID, monitorID (were snake_case)
- All change approval and ticket fields converted to camelCase
- All service thermometer fields converted to camelCase

This fix should populate assigned_resource_id and other fields correctly
on the next ticket sync.
This commit is contained in:
root 2026-01-26 15:25:03 -05:00
parent 7252d2cfcf
commit cc16d9b32d

View file

@ -156,36 +156,36 @@ function mapTicket(data: any): Record<string, any> {
last_activity_date: data.lastActivityDate,
last_customer_notification_date_time: data.lastCustomerNotificationDateTime,
last_customer_visible_activity_date_time: data.lastCustomerVisibleActivityDateTime,
first_response_date_time: data.first_response_date_time,
resolution_plan_date_time: data.resolution_plan_date_time,
resolved_date_time: data.resolved_date_time,
first_response_assigned_resource_id: data.first_response_assigned_resource_id,
first_response_initiating_resource_id: data.first_response_initiating_resource_id,
project_id: data.project_id,
opportunity_id: data.opportunity_id,
change_approval_board: data.change_approval_board,
change_approval_status: data.change_approval_status,
change_approval_type: data.change_approval_type,
change_info_field1: data.change_info_field1,
change_info_field2: data.change_info_field2,
change_info_field3: data.change_info_field3,
change_info_field4: data.change_info_field4,
change_info_field5: data.change_info_field5,
contract_id: data.contract_id,
monitor_id: data.monitor_id,
monitor_type_id: data.monitor_type_id,
ticket_type: data.ticket_type,
ticket_category: data.ticket_category,
service_level_agreement_id: data.service_level_agreement_id,
first_response_date_time: data.firstResponseDateTime,
resolution_plan_date_time: data.resolutionPlanDateTime,
resolved_date_time: data.resolvedDateTime,
first_response_assigned_resource_id: data.firstResponseAssignedResourceID,
first_response_initiating_resource_id: data.firstResponseInitiatingResourceID,
project_id: data.projectID,
opportunity_id: data.opportunityID,
change_approval_board: data.changeApprovalBoard,
change_approval_status: data.changeApprovalStatus,
change_approval_type: data.changeApprovalType,
change_info_field1: data.changeInfoField1,
change_info_field2: data.changeInfoField2,
change_info_field3: data.changeInfoField3,
change_info_field4: data.changeInfoField4,
change_info_field5: data.changeInfoField5,
contract_id: data.contractID,
monitor_id: data.monitorID,
monitor_type_id: data.monitorTypeID,
ticket_type: data.ticketType,
ticket_category: data.ticketCategory,
service_level_agreement_id: data.serviceLevelAgreementID,
resolution: data.resolution,
purchase_order_number: data.purchase_order_number,
ticket_completion_date: data.ticket_completion_date,
last_activity_person_type: data.last_activity_person_type,
last_activity_resource_id: data.last_activity_resource_id,
current_service_thermometer_rating: data.current_service_thermometer_rating,
previous_service_thermometer_rating: data.previous_service_thermometer_rating,
service_thermometer_temperature: data.service_thermometer_temperature,
api_vendor_id: data.api_vendor_id,
purchase_order_number: data.purchaseOrderNumber,
ticket_completion_date: data.ticketCompletionDate,
last_activity_person_type: data.lastActivityPersonType,
last_activity_resource_id: data.lastActivityResourceID,
current_service_thermometer_rating: data.currentServiceThermometerRating,
previous_service_thermometer_rating: data.previousServiceThermometerRating,
service_thermometer_temperature: data.serviceThermometerTemperature,
api_vendor_id: data.apiVendorID,
synced_at: data.synced_at,
is_deleted: data.is_deleted || false,
};