common-package
Version:
Common package
44 lines (39 loc) • 1.18 kB
JavaScript
import { apiUrl } from './const'
const fetch = require('node-fetch')
const generateUrl = (url, params) => {
const generatedUrl = new URL(apiUrl + '/' + url)
Object.keys(params).forEach(key =>
generatedUrl.searchParams.append(key, params[key])
)
return generatedUrl
}
export const callApi = (url, options) => {
const { method, params, headers } = options
console.log(options)
return fetch(generateUrl(url, params), {
method: method || 'GET', // *GET, POST, PUT, DELETE, etc.
mode: 'cors',
cache: 'no-cache',
credentials: 'same-origin',
headers: headers || {
'Content-Type': 'application/json'
// "Content-Type": "application/x-www-form-urlencoded"
},
redirect: 'follow',
referrer: 'no-referrer',
body: method === 'GET' ? JSON.stringify() : JSON.stringify(params)
})
.then(response => {
if (response.status === 200) {
return response.json()
}
throw new Error('Network response was not ok.')
})
.then(json => {
console.log(json)
return json
})
.catch(error => {
console.log('Error', error)
})
}