This repository has been archived on 2020-11-22. You can view files and clone it, but cannot push or open issues/pull-requests.
mangareader/frontend/src/api-client.js

38 lines
991 B
JavaScript

const apiBase = process.env.NODE_ENV === 'production' ? '/api' : 'http://localhost:5000/api'
const apiRequest = (path, callback) => {
fetch(`${apiBase}/${path}`)
.then(text => text.json())
.then(callback)
}
export default {
listSeries (callback) {
apiRequest('series', series => {
series = series.map(item => {
item.thumbnail = `${apiBase}/series/${item.id}/cover/thumbnail`
return item
})
callback(series)
})
},
listVolumes (series, callback) {
apiRequest(`series/${series}`, info => {
info.volumes = info.volumes.map(volume => {
volume.thumbnail = `${apiBase}/volume/${volume.id}/cover/thumbnail`
return volume
})
callback(info)
})
},
getVolumeInfo (volume, callback) {
apiRequest(`volume/${volume}`, info => {
info.pages = [...Array(info.pages).keys()].map(page => `${apiBase}/volume/${volume}/page/${page + 1}`)
info.id = volume
callback(info)
})
}
}