const requestOptions = {
mode: 'cors',
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
}
}
const handleResponse = response => {
const jsonResponse = response.json()
if (response.ok) {
return jsonResponse
} else {
return jsonResponse.then(err => { throw err })
}
}
const get (url) {
return fetch(url, requestOptions)
.then(handleResponse)
}
asyncAction()
.then((resp) => {
respStatus = resp.status
return resp.json()
})
.then((resp) => {
switch (respStatus) {
case 200:
// some logic
break
case 422:
// validation logic
break
default:
if (resp.message) {
// if your api sends errors like {message: "you did wrong"}
setErrorsHandler([resp.message])
} else {
throw new Error(resp)
}
}
})
.catch((err) => {
setErrors([err.message])
console.log('err: ', err)
})