Add toISO8601() helper for UTC date formatting

This commit is contained in:
John Mizerek 2026-02-20 11:56:31 -08:00
parent ea34f302ac
commit 9e5770f131
6 changed files with 16 additions and 8 deletions

View file

@ -76,6 +76,14 @@ function headerValue(name) {
return ""; return "";
} }
// Format date as ISO 8601 with UTC timezone (e.g., "2024-01-15T20:30:00Z")
// This allows clients to parse without assuming a timezone
function toISO8601(d) {
if (isNull(d) || !isDate(d)) return "";
var utc = dateConvert("local2utc", d);
return dateTimeFormat(utc, "yyyy-MM-dd'T'HH:nn:ss") & "Z";
}
// Determine request path // Determine request path
request._api_scriptName = ""; request._api_scriptName = "";
if (structKeyExists(cgi, "SCRIPT_NAME")) { if (structKeyExists(cgi, "SCRIPT_NAME")) {

View file

@ -82,7 +82,7 @@ try {
"SenderName": len(trim(msg.SenderName)) ? msg.SenderName : (msg.SenderType == "customer" ? "Customer" : "Staff"), "SenderName": len(trim(msg.SenderName)) ? msg.SenderName : (msg.SenderType == "customer" ? "Customer" : "Staff"),
"Text": msg.MessageBody, "Text": msg.MessageBody,
"IsRead": msg.IsRead == 1, "IsRead": msg.IsRead == 1,
"CreatedOn": dateFormat(msg.CreatedOn, "yyyy-mm-dd") & "T" & timeFormat(msg.CreatedOn, "HH:mm:ss") "CreatedOn": toISO8601(msg.CreatedOn)
}); });
} }

View file

@ -88,7 +88,7 @@
"StatusID": currentStatus, "StatusID": currentStatus,
"StatusName": statusName, "StatusName": statusName,
"Message": statusMessage, "Message": statusMessage,
"LastEditedOn": dateFormat(qOrder.LastEditedOn, "yyyy-mm-dd") & " " & timeFormat(qOrder.LastEditedOn, "HH:mm:ss") "LastEditedOn": toISO8601(qOrder.LastEditedOn)
}> }>
<cfset payload.MESSAGE = statusMessage> <cfset payload.MESSAGE = statusMessage>

View file

@ -109,11 +109,11 @@
"TaskTypeName": qTask.TaskTypeName ?: "", "TaskTypeName": qTask.TaskTypeName ?: "",
"TaskTypeColor": len(trim(qTask.TaskTypeColor)) ? qTask.TaskTypeColor : "##9C27B0", "TaskTypeColor": len(trim(qTask.TaskTypeColor)) ? qTask.TaskTypeColor : "##9C27B0",
"TaskTitle": taskTitle, "TaskTitle": taskTitle,
"TaskCreatedOn": dateFormat(qTask.CreatedOn, "yyyy-mm-dd") & "T" & timeFormat(qTask.CreatedOn, "HH:mm:ss"), "TaskCreatedOn": toISO8601(qTask.CreatedOn),
"TaskStatusID": qTask.ClaimedByUserID GT 0 ? 1 : 0, "TaskStatusID": qTask.ClaimedByUserID GT 0 ? 1 : 0,
"OrderID": qTask.OrderID ?: 0, "OrderID": qTask.OrderID ?: 0,
"OrderRemarks": qTask.Remarks ?: "", "OrderRemarks": qTask.Remarks ?: "",
"OrderSubmittedOn": isDate(qTask.SubmittedOn) ? (dateFormat(qTask.SubmittedOn, "yyyy-mm-dd") & "T" & timeFormat(qTask.SubmittedOn, "HH:mm:ss")) : "", "OrderSubmittedOn": toISO8601(qTask.SubmittedOn),
"OrderTotal": 0, "OrderTotal": 0,
"OrderTotalCents": 0, "OrderTotalCents": 0,
"ServicePointID": qTask.ServicePointID ?: 0, "ServicePointID": qTask.ServicePointID ?: 0,

View file

@ -128,9 +128,9 @@
"TaskTypeID": qTasks.TaskTypeID, "TaskTypeID": qTasks.TaskTypeID,
"Title": taskTitle, "Title": taskTitle,
"Details": taskDetails, "Details": taskDetails,
"CreatedOn": dateFormat(qTasks.CreatedOn, "yyyy-mm-dd") & "T" & timeFormat(qTasks.CreatedOn, "HH:mm:ss"), "CreatedOn": toISO8601(qTasks.CreatedOn),
"ClaimedOn": (isNull(qTasks.ClaimedOn) OR len(trim(qTasks.ClaimedOn)) EQ 0) ? "" : dateFormat(qTasks.ClaimedOn, "yyyy-mm-dd") & "T" & timeFormat(qTasks.ClaimedOn, "HH:mm:ss"), "ClaimedOn": toISO8601(qTasks.ClaimedOn),
"CompletedOn": (isNull(qTasks.CompletedOn) OR len(trim(qTasks.CompletedOn)) EQ 0) ? "" : dateFormat(qTasks.CompletedOn, "yyyy-mm-dd") & "T" & timeFormat(qTasks.CompletedOn, "HH:mm:ss"), "CompletedOn": toISO8601(qTasks.CompletedOn),
"StatusID": (isNull(qTasks.CompletedOn) OR len(trim(qTasks.CompletedOn)) EQ 0) ? 1 : 3, "StatusID": (isNull(qTasks.CompletedOn) OR len(trim(qTasks.CompletedOn)) EQ 0) ? 1 : 3,
"SourceType": "order", "SourceType": "order",
"SourceID": qTasks.OrderID, "SourceID": qTasks.OrderID,

View file

@ -110,7 +110,7 @@
"TaskTypeID": qTasks.TaskTypeID, "TaskTypeID": qTasks.TaskTypeID,
"Title": taskTitle, "Title": taskTitle,
"Details": taskDetails, "Details": taskDetails,
"CreatedOn": dateFormat(qTasks.CreatedOn, "yyyy-mm-dd") & "T" & timeFormat(qTasks.CreatedOn, "HH:mm:ss"), "CreatedOn": toISO8601(qTasks.CreatedOn),
"StatusID": qTasks.ClaimedByUserID GT 0 ? 1 : 0, "StatusID": qTasks.ClaimedByUserID GT 0 ? 1 : 0,
"SourceType": "order", "SourceType": "order",
"SourceID": qTasks.OrderID, "SourceID": qTasks.OrderID,