updated getUNIXTime logic

This commit is contained in:
abhinav-grd 2021-09-10 12:21:18 +05:30
parent ea73bc43f8
commit 5e6adb4634
2 changed files with 25 additions and 9 deletions

View file

@ -1,4 +1,5 @@
import exifr from 'exifr';
import { CustomError } from 'utils/common/errorUtil';
import { logError } from 'utils/sentry';
import { NULL_LOCATION, Location } from './metadataService';
@ -34,17 +35,31 @@ export async function getExifData(
}
function getUNIXTime(exifData: any) {
const dateString: string = exifData.DateTimeOriginal || exifData.DateTime;
if (!dateString || dateString === '0000:00:00 00:00:00') {
try {
if (!exifData.DateTimeOriginal) {
throw Error(CustomError.MISSING_EXIF_TAG);
}
if (exifData.DateTimeOriginal instanceof Date) {
return exifData.DateTimeOriginal.getTime() * 1000;
} else if (typeof exifData.DateTimeOriginal === 'string') {
const dateString = exifData.DateTimeOriginal;
if (dateString === '0000:00:00 00:00:00') {
throw Error(CustomError.MISSING_EXIF_TAG);
}
const parts = dateString.split(' ')[0].split(':');
const date = new Date(
Number(parts[0]),
Number(parts[1]) - 1,
Number(parts[2])
);
return date.getTime() * 1000;
} else {
throw Error(CustomError.MISSING_EXIF_TAG);
}
} catch (e) {
logError(e, 'getUnixTime failed', { exifData });
return null;
}
const parts = dateString.split(' ')[0].split(':');
const date = new Date(
Number(parts[0]),
Number(parts[1]) - 1,
Number(parts[2])
);
return date.getTime() * 1000;
}
function getEXIFLocation(exifData): Location {

View file

@ -26,6 +26,7 @@ export enum CustomError {
TYPE_DETECTION_FAILED = 'type detection failed',
SIGNUP_FAILED = 'signup failed',
FAV_COLLECTION_MISSING = 'favorite collection missing',
MISSING_EXIF_TAG = 'missing exif tags',
}
function parseUploadError(error: AxiosResponse) {