UNPKG

hkopendata

Version:

Access different Opendata API and data in Hong Kong

90 lines (84 loc) 2.46 kB
// https://apidocs.hkma.gov.hk/chi/documentation/bank-svf-info/fraudulent-bank-scams/ const cmn = require("../../../common"); const lib = require("../../../lib/gov-hkma"); const BASE_URL = "https://api.hkma.gov.hk/public/bank-svf-info/fraudulent-bank-scams"; const VALID = { lang: /^(en|tc)$/, } const PARAMS = { lang: "en", } const FIELDS = { "alleged_name": "organization", "scam_type": "type", "pr_url": "website", "fraud_website_address": "fraudWebsites", "issue_date": "date" } 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 = lib.validateParameters({ ...PARAMS, ...data }, validateParameters, true), params; if (processed.error) { reject(processed); } else { params = processed.data; lib.APIRequest(BASE_URL, params) .then((res) => { resolve(processData(res)); }) .catch((err) => reject(err)) } }) } function processData(data) { let result = []; const fraudParse = { "hXXp": /http/gi, ".cXm": /\.com/gi, "*": /\./g, }, fraudRevert = { "http": /hxxp/gi, "$1": /\[([:.])\]/g, "": /\s/g, } data = lib.RenameAll(data, FIELDS); data.map(item => { let temp = {}; for (let key in item) { if (key == "fraudWebsites") { temp[key] = []; temp[`_${key}`] = []; if (item[key]) { item[key].split(";").map(v => { let t = v; for (let k in fraudRevert) { t = t.replace(fraudRevert[k], k) } temp[`_${key}`].push(t); for (let k in fraudParse) { t = t.replace(fraudParse[k], k) } temp[key].push(t); }) } } else temp[key] = item[key]; } result.push(temp) }) return result; } module.exports = search