UNPKG

node-apple-weatherkit

Version:
51 lines 1.62 kB
import fetch from 'cross-fetch'; import { Err } from '../types'; const BASE_URL_V1 = 'https://weatherkit.apple.com/api/v1'; export default class Api { constructor(accessToken) { this.accessToken = accessToken; this.accessToken = accessToken; } async get(path, params) { const queryParams = params ? new URLSearchParams(this.convertParams(params)).toString() : ''; const url = `${BASE_URL_V1}${path}?${queryParams}`; const response = await fetch(url, { method: 'GET', headers: { Authorization: `Bearer ${this.accessToken}`, 'Content-Type': 'application/json;charset=utf-8', }, }); if (response.status != 200) { return Err(await response.text(), response.status); } return (await response.json()); } convertParams(params) { if (!params) return {}; const records = {}; let val; for (const k in params) { switch (k) { case 'currentAsOf': case 'dailyEnd': case 'dailyStart': case 'hourlyEnd': case 'hourlyStart': val = params[k]?.toISOString(); break; case 'dataSets': val = params[k]?.join(','); break; default: val = params[k]; } if (val) { records[k] = val; } } return records; } } //# sourceMappingURL=Api.js.map