UNPKG

hkopendata

Version:

Access different Opendata API and data in Hong Kong

59 lines (53 loc) 1.55 kB
// https://www.hydro.gov.hk/datagovhk/Latest_Tide_Information_EN.pdf const cmn = require("../../../common"); const BASE_URL = " https://tide1.hydro.gov.hk/hotide/OpenData/All_{lang}.csv"; const UnitValue = require("../../../_class").UnitValue; const VALID = { lang: /^(en|tc|sc)$/, }; const PARAMS = { lang: "en", } function validateParameters(params) { let result = cmn.ValidateParameters(params, VALID); if (!result.error) { result.data = { ...params } } return result; } function search(data, opts) { return new Promise((resolve, reject) => { let processed = validateParameters({ ...PARAMS, ...data }); if (processed.error) { reject(processed); } else { cmn.CSVFetch(cmn.ReplaceURL(BASE_URL, processed.data)) .then((res) => { resolve(processData(res)); }) .catch((err) => reject(err)) } }) } function processData(data) { return data.body.map(row => { if (row[3] === "---") return false; return { station: row[0], date: row[1], time: row[2], height: new UnitValue({ type: "length", category: "metre", value: row[3] }) } }) .filter(row => row) } module.exports = search;