const _fetch = require('node-fetch') function _filter(data) { data = data.user return { uid: data.uid, username: data.username, email: data.email } } /** * Gets all the info we have about an user * * @param {Object} fetch Optionally, _our_ `fetch` can be passed here * @param {String} token Only necessary if `fetch` is undefined * @param {String} apiUrl Only necessary if `fetch` is undefined * @param {Boolean} filter If `true`, the `filter` used will to the data * before returning * @return {Object} */ async function get( { fetch, token, apiUrl = 'https://api.zeit.co', filter = true } = {} ) { let headers = {} const endpoint = '/www/user' const url = fetch ? endpoint : apiUrl + endpoint if (!fetch) { headers = { Authorization: `Bearer ${token}` } fetch = _fetch } try { const res = await fetch(url, { headers }) const json = await res.json() if (filter) { return _filter(json) } return json } catch (err) { return {} } } module.exports = { get, filter: _filter }