Tredun ohjelmistokehittäjien kurssimateriaaleja
Tehdään uusi kirjasto axios-service. Tämän kirjaston tarkoitus on piilottaa muulta koodilta yksityskohta kuten serviceURL, axios-kirjasto, sekä tallentaa authtoken.
import axios from 'axios';
const baseUrl = '/notes'
let token = null;
const setToken = newToken => {
token = newToken
}
const makeHeader = () => {
let header = {headers: {Authorization: `bearer ${token}`}}
return header;
}
const getAll = () => {
const request = axios.get(baseUrl, makeHeader())
return request.then(response => response.data)
}
const add = (newNote) => {
const request = axios.post(baseUrl, newNote, makeHeader())
return request.then(response => response.data)
}
const update = (id, updatedNote) => {
const request = axios.put(`${baseUrl}/${id}`, updatedNote, makeHeader())
return request.then(response => response.data)
}
const remove = (id) => {
return axios.delete(`${baseUrl}/${id}`, makeHeader())
}
export default {
getAll: getAll,
add: add,
update: update,
remove: remove,
setToken: setToken
}
Otetaan kirjasto käyttöön App.js:ssä:
import notesService from './services/notes';
Poista service URL, ja korvaa kaikki korvaa kaikki axios-kutsut sitä vastaavalla notesService-funktiolla, esim.
Vanha:
axios
.get(serviceURI)
Uusi:
notesService
.getAll()
Korjaa myös response.data -> response (service palauttaa suoraan data-osan).