38 lines
991 B
JavaScript
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)
|
|
})
|
|
}
|
|
}
|