2021-03-22 10:55:23 +01:00
|
|
|
import { writable } from "svelte/store"
|
2021-03-26 09:50:37 +01:00
|
|
|
import api from "builderStore/api"
|
2021-03-22 10:55:23 +01:00
|
|
|
|
2021-03-26 09:50:37 +01:00
|
|
|
export function createRolesStore() {
|
2021-03-29 18:23:53 +02:00
|
|
|
const { subscribe, update, set } = writable([])
|
2021-03-22 10:55:23 +01:00
|
|
|
|
|
|
|
return {
|
|
|
|
subscribe,
|
|
|
|
fetch: async () => {
|
|
|
|
set(await getRoles())
|
|
|
|
},
|
2021-05-03 09:31:09 +02:00
|
|
|
delete: async (role) => {
|
2021-03-22 10:55:23 +01:00
|
|
|
const response = await api.delete(`/api/roles/${role._id}/${role._rev}`)
|
2021-05-03 09:31:09 +02:00
|
|
|
update((state) => state.filter((existing) => existing._id !== role._id))
|
2021-03-22 10:55:23 +01:00
|
|
|
return response
|
|
|
|
},
|
2021-05-03 09:31:09 +02:00
|
|
|
save: async (role) => {
|
2021-03-22 10:55:23 +01:00
|
|
|
const response = await api.post("/api/roles", role)
|
|
|
|
set(await getRoles())
|
|
|
|
return response
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function getRoles() {
|
2021-03-23 13:31:18 +01:00
|
|
|
const response = await api.get("/api/roles")
|
|
|
|
return await response.json()
|
2021-03-22 10:55:23 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
export const roles = createRolesStore()
|