53 lines
989 B
JavaScript
53 lines
989 B
JavaScript
import { fetchURL, fetchJSON } from './utils'
|
|
|
|
export async function getAll () {
|
|
return fetchJSON(`/api/users`, {})
|
|
}
|
|
|
|
export async function get (id) {
|
|
return fetchJSON(`/api/users/${id}`, {})
|
|
}
|
|
|
|
export async function create (user) {
|
|
const res = await fetchURL(`/api/users`, {
|
|
method: 'POST',
|
|
body: JSON.stringify({
|
|
what: 'user',
|
|
which: [],
|
|
data: user
|
|
})
|
|
})
|
|
|
|
if (res.status === 201) {
|
|
return res.headers.get('Location')
|
|
} else {
|
|
throw new Error(res.status)
|
|
}
|
|
|
|
}
|
|
|
|
export async function update (user, which = ['all']) {
|
|
const res = await fetchURL(`/api/users/${user.id}`, {
|
|
method: 'PUT',
|
|
body: JSON.stringify({
|
|
what: 'user',
|
|
which: which,
|
|
data: user
|
|
})
|
|
})
|
|
|
|
if (res.status !== 200) {
|
|
throw new Error(res.status)
|
|
}
|
|
}
|
|
|
|
export async function remove (id) {
|
|
const res = await fetchURL(`/api/users/${id}`, {
|
|
method: 'DELETE'
|
|
})
|
|
|
|
if (res.status !== 200) {
|
|
throw new Error(res.status)
|
|
}
|
|
}
|