Prevent timestamps being overwritten when syncing EXIF

This commit is contained in:
Sam Becker 2024-02-21 23:13:39 -06:00
parent 551b4d4ec3
commit 92d13d586c
2 changed files with 15 additions and 11 deletions

View File

@ -155,7 +155,10 @@ export const convertPhotoToFormData = (
export const convertExifToFormData = ( export const convertExifToFormData = (
data: ExifData, data: ExifData,
filmSimulation?: FilmSimulation, filmSimulation?: FilmSimulation,
): Record<keyof PhotoExif, string | undefined> => ({ ): Omit<
Record<keyof PhotoExif, string | undefined>,
'takenAt' | 'takenAtNaive'
> => ({
aspectRatio: getAspectRatioFromExif(data).toString(), aspectRatio: getAspectRatioFromExif(data).toString(),
make: data.tags?.Make, make: data.tags?.Make,
model: data.tags?.Model, model: data.tags?.Model,
@ -170,15 +173,14 @@ export const convertExifToFormData = (
longitude: longitude:
!GEO_PRIVACY_ENABLED ? data.tags?.GPSLongitude?.toString() : undefined, !GEO_PRIVACY_ENABLED ? data.tags?.GPSLongitude?.toString() : undefined,
filmSimulation, filmSimulation,
takenAt: data.tags?.DateTimeOriginal ...data.tags?.DateTimeOriginal && {
? convertTimestampWithOffsetToPostgresString( takenAt: convertTimestampWithOffsetToPostgresString(
data.tags?.DateTimeOriginal, data.tags.DateTimeOriginal,
getOffsetFromExif(data), getOffsetFromExif(data),
) ),
: undefined, takenAtNaive:
takenAtNaive: data.tags?.DateTimeOriginal convertTimestampToNaivePostgresString(data.tags.DateTimeOriginal),
? convertTimestampToNaivePostgresString(data.tags?.DateTimeOriginal) },
: undefined,
}); });
// PREPARE FORM FOR DB INSERT // PREPARE FORM FOR DB INSERT

View File

@ -36,8 +36,8 @@ export interface PhotoExif {
latitude?: number latitude?: number
longitude?: number longitude?: number
filmSimulation?: FilmSimulation filmSimulation?: FilmSimulation
takenAt: string takenAt?: string
takenAtNaive: string takenAtNaive?: string
} }
// Raw db insert // Raw db insert
@ -51,6 +51,8 @@ export interface PhotoDbInsert extends PhotoExif {
locationName?: string locationName?: string
priorityOrder?: number priorityOrder?: number
hidden?: boolean hidden?: boolean
takenAt: string
takenAtNaive: string
} }
// Raw db response // Raw db response