UNPKG

firefly-iii

Version:

Unofficial Firefly III API SDK for firefly-iii

67 lines (60 loc) 1.31 kB
const p = require('phin') const serialize = (obj) => { const str = '?' + Object.keys(obj).reduce(function (a, k) { a.push(k + '=' + encodeURIComponent(obj[k])) return a }, []).join('&') return str } const get = async (url, param, query, token) => { const res = await p({ url: param ? `${url}/${param}${serialize(query)}` : `${url}${serialize(query)}`, parse: 'json', method: 'GET', headers: token && { Authorization: `Bearer ${token}` } }) return res.body } const post = async (url, form, token) => { const res = await p({ url, method: 'POST', parse: 'json', headers: token && { Authorization: `Bearer ${token}` }, form }) return res.body } const put = async (url, param, form, token) => { const res = await p({ url: param ? `${url}/${param}` : `${url}`, method: 'PUT', parse: 'json', headers: token && { Authorization: `Bearer ${token}` }, form }) return res.body } const del = async (url, param, token) => { const res = await p({ url: param ? `${url}/${param}` : `${url}`, method: 'DELETE', parse: 'json', headers: token && { Authorization: `Bearer ${token}` } }) return { status: res.statusCode } } module.exports = { get, post, put, del }