Add last modified timestamps for all settings within getAllSettings

This commit is contained in:
Quinn Hegeman
2026-03-08 15:28:45 +01:00
parent 4d220e1be7
commit f5c25dea75
6 changed files with 51 additions and 6 deletions

View File

@@ -26,7 +26,10 @@ export async function getSettings(): Promise<GlobalSettings> {
twitter: {
id: websiteResults["twitter_id"],
handle: websiteResults["twitter_handle"]
}
},
lastModified: websiteResults["date_updated"] !== null ?
new Date(websiteResults["date_updated"]) :
new Date(websiteResults["date_created"])
};
const blogResults = result["Blog_Settings"];
@@ -36,7 +39,9 @@ export async function getSettings(): Promise<GlobalSettings> {
subtext: blogResults["subtext"],
indexRouteTemplate: blogResults["index_route_template"],
blogRouteTemplate: blogResults["blog_route_template"],
lastModified: blogResults["date_updated"] !== null ? new Date(blogResults["date_updated"]) : new Date(blogResults["date_created"])
lastModified: blogResults["date_updated"] !== null ?
new Date(blogResults["date_updated"]) :
new Date(blogResults["date_created"])
};
const projectResults = result["Project_Settings"];
@@ -45,10 +50,33 @@ export async function getSettings(): Promise<GlobalSettings> {
title: projectResults["title"],
subtext: projectResults["subtext"],
indexRouteTemplate: projectResults["index_route_template"],
projectRouteTemplate: projectResults["project_route_template"]
projectRouteTemplate: projectResults["project_route_template"],
lastModified: projectResults["date_updated"] !== null ?
new Date(projectResults["date_updated"]) :
new Date(projectResults["date_created"])
};
const photoResults = result["Photo_Settings"];
let photoResultsLastModifiedTimestamps: string[] = [
photoResults["date_created"],
photoResults["date_updated"],
photoResults["category_icons"]["date_created"],
photoResults["category_icons"]["date_updated"],
photoResults["category_icons"]["photos_icon"]["created_on"],
photoResults["category_icons"]["location_icon"]["created_on"],
photoResults["category_icons"]["date_icon"]["created_on"],
photoResults["photo_icons"]["date_created"],
photoResults["photo_icons"]["date_updated"],
photoResults["photo_icons"]["previous_icon"]["created_on"],
photoResults["photo_icons"]["next_icon"]["created_on"],
photoResults["photo_icons"]["close_icon"]["created_on"],
photoResults["photo_icons"]["download_icon"]["created_on"]
];
const photoResultsLastModified = photoResultsLastModifiedTimestamps.sort((a: string, b: string) => {
return new Date(b).getTime() - new Date(a).getTime();
});
const photoSettings: WebsitePhotoSettings = {
enabled: photoResults["enabled"],
categoryIndex: {
@@ -103,12 +131,16 @@ export async function getSettings(): Promise<GlobalSettings> {
width: photoResults["photo_icons"]["download_icon"]["width"]
}
}
}
},
lastModified: new Date(photoResultsLastModified[0])
};
const sitemapResults = result["Sitemap_Settings"];
const sitemapSettings: SitemapSettings = {
perPage: sitemapResults["per_page"]
perPage: sitemapResults["per_page"],
lastModified: sitemapResults["date_updated"] !== null ?
new Date(sitemapResults["date_updated"]) :
new Date(sitemapResults["date_created"])
};
const pluginResults = result["Plugin_Settings"];
@@ -116,7 +148,10 @@ export async function getSettings(): Promise<GlobalSettings> {
swetrix: {
id: pluginResults["swetrix_id"],
url: pluginResults["swetrix_url"]
}
},
lastModified: pluginResults["date_updated"] !== null ?
new Date(pluginResults["date_updated"]) :
new Date(pluginResults["date_created"])
}
if (pluginResults["swetrix_id"] === null && pluginResults["swetrix_url"] === null) {

View File

@@ -5,6 +5,8 @@ type WebsitePhotoSettings = {
category: WebsitePhotoSettingsCategory;
album: WebsitePhotoSettingsAlbum;
photo: WebsitePhotoSettingsPhoto;
lastModified: Date;
}
type WebsitePhotoSettingsCategoryIndex = {

View File

@@ -1,5 +1,7 @@
type PluginSettings = {
swetrix: PluginSettingsSwetrix | null;
lastModified: Date;
}
type PluginSettingsSwetrix = {

View File

@@ -6,4 +6,6 @@ type ProjectSettings = {
indexRouteTemplate: string;
projectRouteTemplate: string;
lastModified: Date;
}

View File

@@ -1,3 +1,5 @@
type SitemapSettings = {
perPage: number;
lastModified: Date;
}

View File

@@ -13,6 +13,8 @@ type WebsiteSettings = {
copyright: string;
twitter: WebsiteSettingsTwitter;
lastModified: Date;
}
type WebsiteSettingsColors = {