firefly-iii
Version:
Unofficial Firefly III API SDK for firefly-iii
67 lines (60 loc) • 1.31 kB
JavaScript
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
}