From 92d13d586c471151a77cfbcb60ed28b28a0df28b Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Wed, 21 Feb 2024 23:13:39 -0600 Subject: [PATCH] Prevent timestamps being overwritten when syncing EXIF --- src/photo/form/index.ts | 20 +++++++++++--------- src/photo/index.ts | 6 ++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/photo/form/index.ts b/src/photo/form/index.ts index d2ba6a85..c1404a4a 100644 --- a/src/photo/form/index.ts +++ b/src/photo/form/index.ts @@ -155,7 +155,10 @@ export const convertPhotoToFormData = ( export const convertExifToFormData = ( data: ExifData, filmSimulation?: FilmSimulation, -): Record => ({ +): Omit< + Record, + 'takenAt' | 'takenAtNaive' +> => ({ aspectRatio: getAspectRatioFromExif(data).toString(), make: data.tags?.Make, model: data.tags?.Model, @@ -170,15 +173,14 @@ export const convertExifToFormData = ( longitude: !GEO_PRIVACY_ENABLED ? data.tags?.GPSLongitude?.toString() : undefined, filmSimulation, - takenAt: data.tags?.DateTimeOriginal - ? convertTimestampWithOffsetToPostgresString( - data.tags?.DateTimeOriginal, + ...data.tags?.DateTimeOriginal && { + takenAt: convertTimestampWithOffsetToPostgresString( + data.tags.DateTimeOriginal, getOffsetFromExif(data), - ) - : undefined, - takenAtNaive: data.tags?.DateTimeOriginal - ? convertTimestampToNaivePostgresString(data.tags?.DateTimeOriginal) - : undefined, + ), + takenAtNaive: + convertTimestampToNaivePostgresString(data.tags.DateTimeOriginal), + }, }); // PREPARE FORM FOR DB INSERT diff --git a/src/photo/index.ts b/src/photo/index.ts index 108f6512..05608c81 100644 --- a/src/photo/index.ts +++ b/src/photo/index.ts @@ -36,8 +36,8 @@ export interface PhotoExif { latitude?: number longitude?: number filmSimulation?: FilmSimulation - takenAt: string - takenAtNaive: string + takenAt?: string + takenAtNaive?: string } // Raw db insert @@ -51,6 +51,8 @@ export interface PhotoDbInsert extends PhotoExif { locationName?: string priorityOrder?: number hidden?: boolean + takenAt: string + takenAtNaive: string } // Raw db response