2020-03-31 10:27:39 -08:00
|
|
|
import { fetchUtils } from 'react-admin'
|
2020-04-15 17:37:02 -08:00
|
|
|
import baseUrl from '../utils/baseUrl'
|
2020-03-31 10:27:39 -08:00
|
|
|
|
|
|
|
|
const url = (command, id, options) => {
|
2020-02-15 10:20:04 -09:00
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
params.append('u', localStorage.getItem('username'))
|
|
|
|
|
params.append('t', localStorage.getItem('subsonic-token'))
|
|
|
|
|
params.append('s', localStorage.getItem('subsonic-salt'))
|
|
|
|
|
params.append('f', 'json')
|
|
|
|
|
params.append('v', '1.8.0')
|
|
|
|
|
params.append('c', 'NavidromeUI')
|
|
|
|
|
params.append('id', id)
|
2020-02-07 08:36:26 -09:00
|
|
|
if (options) {
|
2020-02-15 10:20:04 -09:00
|
|
|
if (options.ts) {
|
|
|
|
|
options['_'] = new Date().getTime()
|
|
|
|
|
delete options.ts
|
|
|
|
|
}
|
|
|
|
|
Object.keys(options).forEach((k) => {
|
|
|
|
|
params.append(k, options[k])
|
|
|
|
|
})
|
2020-02-07 08:36:26 -09:00
|
|
|
}
|
2020-04-03 13:50:42 -08:00
|
|
|
const url = `/rest/${command}?${params.toString()}`
|
|
|
|
|
return baseUrl(url)
|
2020-02-07 08:36:26 -09:00
|
|
|
}
|
|
|
|
|
|
2020-04-25 06:30:54 -08:00
|
|
|
const scrobble = (id, submit) =>
|
|
|
|
|
fetchUtils.fetchJson(url('scrobble', id, { submission: submit }))
|
2020-03-31 10:27:39 -08:00
|
|
|
|
2020-08-05 10:57:59 -08:00
|
|
|
const download = (id, submit) => (window.location.href = url('download', id))
|
|
|
|
|
|
|
|
|
|
export default { url, scrobble, download }
|