convert type of date in the csv to int before parsing date
This commit is contained in:
@ -35,7 +35,8 @@ const parseState = (state: string): ArticleSavingRequestStatus => {
|
||||
}
|
||||
|
||||
const parseDate = (date: string): Date => {
|
||||
const parsedDate = new Date(date)
|
||||
// date is unix timestamp in milliseconds
|
||||
const parsedDate = new Date(parseInt(date, 10))
|
||||
if (isNaN(parsedDate.getTime())) {
|
||||
throw new Error('invalid date')
|
||||
}
|
||||
|
||||
@ -199,7 +199,9 @@ const urlHandler = async (
|
||||
'csv-importer',
|
||||
ctx.taskId,
|
||||
state,
|
||||
labels && labels.length > 0 ? labels : undefined
|
||||
labels && labels.length > 0 ? labels : undefined,
|
||||
savedAt,
|
||||
publishedAt
|
||||
)
|
||||
if (!result) {
|
||||
return Promise.reject('Failed to import url')
|
||||
|
||||
@ -56,18 +56,24 @@ describe('Test csv importer', () => {
|
||||
url: URL
|
||||
state?: ArticleSavingRequestStatus
|
||||
labels?: string[]
|
||||
savedAt?: Date
|
||||
publishedAt?: Date
|
||||
}[] = []
|
||||
const stream = fs.createReadStream('./test/csv/data/complex.csv')
|
||||
stub.urlHandler = (
|
||||
ctx: ImportContext,
|
||||
url,
|
||||
state,
|
||||
labels
|
||||
labels,
|
||||
savedAt,
|
||||
publishedAt
|
||||
): Promise<void> => {
|
||||
results.push({
|
||||
url,
|
||||
state,
|
||||
labels,
|
||||
savedAt,
|
||||
publishedAt,
|
||||
})
|
||||
return Promise.resolve()
|
||||
}
|
||||
@ -80,16 +86,22 @@ describe('Test csv importer', () => {
|
||||
url: new URL('https://omnivore.app'),
|
||||
state: 'ARCHIVED',
|
||||
labels: ['test'],
|
||||
savedAt: undefined,
|
||||
publishedAt: undefined,
|
||||
},
|
||||
{
|
||||
url: new URL('https://google.com'),
|
||||
state: 'SUCCEEDED',
|
||||
labels: ['test', 'development'],
|
||||
state: undefined,
|
||||
savedAt: undefined,
|
||||
publishedAt: undefined,
|
||||
},
|
||||
{
|
||||
url: new URL('https://test.com'),
|
||||
state: 'SUCCEEDED',
|
||||
labels: ['test', 'development'],
|
||||
savedAt: new Date(1692093633000),
|
||||
publishedAt: new Date(1692093633000),
|
||||
},
|
||||
])
|
||||
})
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
url,state,labels,saved_at,published_at
|
||||
"https://omnivore.app",ARCHIVED,"[""test""]",,
|
||||
"https://google.com",SUCCEEDED,"[""test"",""development""]",,
|
||||
https://test.com,SUCCEEDED,"[test, development]",,
|
||||
"https://google.com",,"[""test"",""development""]",,
|
||||
https://test.com,SUCCEEDED,"[test, development]",1692093633000,1692093633000
|
||||
|
||||
|
@ -52,7 +52,6 @@ export default function ImportUploader(): JSX.Element {
|
||||
// validate csv file
|
||||
try {
|
||||
const csvData = await validateCsvFile(file)
|
||||
console.log(csvData.data)
|
||||
if (csvData.inValidData.length > 0) {
|
||||
setErrorMessage(csvData.inValidData[0].message)
|
||||
setUploadState('none')
|
||||
|
||||
Reference in New Issue
Block a user