This repository has been archived on 2026-03-21. You can view files and clone it, but cannot push or open issues or pull requests.
payfrit-biz/api/ratings/setup.cfm
John 16a3b7c9a3 Replace queryExecute with queryTimed across all endpoints for perf tracking
Converts 200+ endpoint files to use queryTimed() wrapper which tracks
DB query count and execution time. Restores perf dashboard files that
were accidentally moved to _scripts/. Includes portal UI updates.
2026-02-02 00:28:37 -08:00

59 lines
1.7 KiB
Text

<cfsetting showdebugoutput="false">
<cfcontent type="application/json; charset=utf-8">
<cfscript>
try {
// Create TaskRatings table
queryTimed("
CREATE TABLE IF NOT EXISTS TaskRatings (
ID INT AUTO_INCREMENT PRIMARY KEY,
TaskID INT NOT NULL,
ByUserID INT NOT NULL,
ForUserID INT NOT NULL,
Direction VARCHAR(25) NOT NULL,
-- Customer/Admin rates Worker
OnTime TINYINT(1) NULL,
CompletedScope TINYINT(1) NULL,
RequiredFollowup TINYINT(1) NULL,
ContinueAllow TINYINT(1) NULL,
-- Worker rates Customer
Prepared TINYINT(1) NULL,
Respectful TINYINT(1) NULL,
WouldAutoAssign TINYINT(1) NULL,
-- For rating links in receipts
AccessToken VARCHAR(64) NOT NULL UNIQUE,
ExpiresOn DATETIME NOT NULL,
-- Timestamps
CreatedOn DATETIME DEFAULT CURRENT_TIMESTAMP,
CompletedOn DATETIME NULL,
INDEX idx_task (TaskID),
INDEX idx_for_user (ForUserID),
INDEX idx_by_user (ByUserID),
INDEX idx_token (AccessToken)
)
", {}, { datasource: "payfrit" });
// Verify table was created
cols = queryTimed("DESCRIBE TaskRatings", {}, { datasource: "payfrit" });
colNames = [];
for (c in cols) {
arrayAppend(colNames, c.Field);
}
writeOutput(serializeJSON({
"OK": true,
"MESSAGE": "TaskRatings table created successfully",
"COLUMNS": colNames
}));
} catch (any e) {
writeOutput(serializeJSON({
"OK": false,
"ERROR": e.message
}));
}
</cfscript>