Add AvatarUrl to profile API and update ImageExtension on upload

- profile.cfm now returns AvatarUrl in USER object
- avatar.cfm now updates Users.ImageExtension after successful upload

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-02-06 18:49:38 -08:00
parent 7f6c8253d0
commit 5786f69ba4
2 changed files with 25 additions and 4 deletions

View file

@ -160,6 +160,11 @@ if (cgi.REQUEST_METHOD == "POST") {
} }
} }
// Update user's ImageExtension in database
queryTimed("
UPDATE Users SET ImageExtension = 'jpg' WHERE ID = :userId
", { userId: { value = userId, cfsqltype = "cf_sql_integer" } }, { datasource = "payfrit" });
writeOutput(serializeJSON({ writeOutput(serializeJSON({
"OK": true, "OK": true,
"MESSAGE": "Avatar uploaded successfully", "MESSAGE": "Avatar uploaded successfully",

View file

@ -63,7 +63,8 @@ if (cgi.REQUEST_METHOD == "GET") {
FirstName, FirstName,
LastName, LastName,
EmailAddress, EmailAddress,
ContactNumber ContactNumber,
ImageExtension
FROM Users FROM Users
WHERE ID = :userId WHERE ID = :userId
LIMIT 1 LIMIT 1
@ -73,6 +74,12 @@ if (cgi.REQUEST_METHOD == "GET") {
apiAbort({ "OK": false, "ERROR": "user_not_found", "MESSAGE": "User not found" }); apiAbort({ "OK": false, "ERROR": "user_not_found", "MESSAGE": "User not found" });
} }
// Build avatar URL if user has an image
avatarUrl = "";
if (len(trim(qUser.ImageExtension))) {
avatarUrl = application.baseUrl & "/uploads/users/" & qUser.ID & "." & qUser.ImageExtension & "?t=" & getTickCount();
}
writeOutput(serializeJSON({ writeOutput(serializeJSON({
"OK": true, "OK": true,
"USER": { "USER": {
@ -80,7 +87,8 @@ if (cgi.REQUEST_METHOD == "GET") {
"FirstName": qUser.FirstName ?: "", "FirstName": qUser.FirstName ?: "",
"LastName": qUser.LastName ?: "", "LastName": qUser.LastName ?: "",
"Email": qUser.EmailAddress ?: "", "Email": qUser.EmailAddress ?: "",
"Phone": qUser.ContactNumber ?: "" "Phone": qUser.ContactNumber ?: "",
"AvatarUrl": avatarUrl
} }
})); }));
abort; abort;
@ -137,12 +145,19 @@ if (cgi.REQUEST_METHOD == "POST") {
FirstName, FirstName,
LastName, LastName,
EmailAddress, EmailAddress,
ContactNumber ContactNumber,
ImageExtension
FROM Users FROM Users
WHERE ID = :userId WHERE ID = :userId
LIMIT 1 LIMIT 1
", { userId: { value = userId, cfsqltype = "cf_sql_integer" } }); ", { userId: { value = userId, cfsqltype = "cf_sql_integer" } });
// Build avatar URL if user has an image
avatarUrl = "";
if (len(trim(qUser.ImageExtension))) {
avatarUrl = application.baseUrl & "/uploads/users/" & qUser.ID & "." & qUser.ImageExtension & "?t=" & getTickCount();
}
writeOutput(serializeJSON({ writeOutput(serializeJSON({
"OK": true, "OK": true,
"MESSAGE": "Profile updated", "MESSAGE": "Profile updated",
@ -151,7 +166,8 @@ if (cgi.REQUEST_METHOD == "POST") {
"FirstName": qUser.FirstName ?: "", "FirstName": qUser.FirstName ?: "",
"LastName": qUser.LastName ?: "", "LastName": qUser.LastName ?: "",
"Email": qUser.EmailAddress ?: "", "Email": qUser.EmailAddress ?: "",
"Phone": qUser.ContactNumber ?: "" "Phone": qUser.ContactNumber ?: "",
"AvatarUrl": avatarUrl
} }
})); }));
abort; abort;