@rr0/cms
Version:
RR0 Content Management System (CMS)
38 lines (37 loc) • 1.51 kB
JavaScript
import { Level2Date as EdtfDate, Level2Timeshift } from "@rr0/time";
/**
* Maps a Base OVNI France CSV case to a Base OVNI France case.
*/
export class BaseOvniFranceCaseSummaryCsvMapper {
constructor(baseUrl, copyright, authors) {
this.baseUrl = baseUrl;
this.copyright = copyright;
this.authors = authors;
}
map(context, csvCase, sourceTime) {
const caseNumber = csvCase["Num cas"];
const dateFields = csvCase["Date"].split("-");
const timeFields = csvCase["Heure"].split(":");
let dayField = dateFields[0];
const dayOfMonth = dayField && dayField !== "00" ? parseInt(dayField, 10) : undefined;
const c = {
id: caseNumber,
url: new URL("listgen.php?typlist=20&page=0&numobs=" + caseNumber, this.baseUrl).href,
city: csvCase.Ville,
depCode: csvCase["Départ."],
time: new EdtfDate({
year: parseInt(dateFields[2], 10),
month: parseInt(dateFields[1], 10),
day: dayOfMonth,
hour: parseInt(timeFields[0], 10),
minute: parseInt(timeFields[1], 10),
timeshift: Level2Timeshift.fromString("CET")
}),
physicalEffect: Boolean(csvCase["Effet Physique"]),
witnessEffect: Boolean(csvCase["Effet témoin"]),
entities: csvCase["Nbre entité"] > 0,
landing: Boolean(csvCase["Atter"])
};
return c;
}
}