UNPKG

@rr0/cms

Version:

RR0 Content Management System (CMS)

38 lines (37 loc) 1.51 kB
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; } }