data = {}; try { requestBody = toString(getHttpRequestData().content); if (len(requestBody)) data = deserializeJSON(requestBody); } catch (any e) {} // If Phone provided, look up user and their employee records if (structKeyExists(data, "Phone") && len(data.Phone)) { phone = reReplace(data.Phone, "[^0-9]", "", "all"); qUser = queryExecute(" SELECT ID, FirstName, LastName, EmailAddress, ContactNumber FROM Users WHERE REPLACE(REPLACE(REPLACE(ContactNumber, '-', ''), '(', ''), ')', '') LIKE ? OR ContactNumber LIKE ? ", [ { value: "%" & phone & "%", cfsqltype: "cf_sql_varchar" }, { value: "%" & phone & "%", cfsqltype: "cf_sql_varchar" } ], { datasource: "payfrit" }); if (qUser.recordCount == 0) { writeOutput(serializeJSON({ "OK": false, "ERROR": "user_not_found", "PHONE": phone })); abort; } userId = qUser.ID; qEmployees = queryExecute(" SELECT e.ID, e.BusinessID, e.StatusID, CAST(e.IsActive AS UNSIGNED) AS IsActive, b.Name FROM Employees e JOIN Businesses b ON e.BusinessID = b.ID WHERE e.UserID = ? ", [{ value: userId, cfsqltype: "cf_sql_integer" }], { datasource: "payfrit" }); employees = []; for (row in qEmployees) { arrayAppend(employees, { "EmployeeID": row.ID, "BusinessID": row.BusinessID, "Name": row.Name, "StatusID": row.StatusID, "IsActive": row.IsActive }); } writeOutput(serializeJSON({ "OK": true, "USER": { "UserID": qUser.ID, "Name": trim(qUser.FirstName & " " & qUser.LastName), "Email": qUser.EmailAddress, "Phone": qUser.ContactNumber }, "EMPLOYEES": employees })); abort; } // Original behavior - list employees by BusinessID businessId = structKeyExists(data, "BusinessID") ? val(data.BusinessID) : 17; q = queryExecute(" SELECT ID, UserID, StatusID, IsActive, CAST(IsActive AS UNSIGNED) AS IsActiveInt FROM Employees WHERE BusinessID = ? ", [{ value: businessId, cfsqltype: "cf_sql_integer" }], { datasource: "payfrit" }); rows = []; for (r in q) { arrayAppend(rows, { "EmployeeID": r.ID, "UserID": r.UserID, "StatusID": r.StatusID, "RawIsActive": r.IsActive, "CastIsActive": r.IsActiveInt, "ValRaw": val(r.IsActive), "ValCast": val(r.IsActiveInt), "EqRaw1": r.IsActive == 1, "EqCast1": r.IsActiveInt == 1 }); } writeOutput(serializeJSON({ "OK": true, "ROWS": rows }));