delete, create , update events
This commit is contained in:
parent
2a5849a2dd
commit
cb4c5a875e
|
@ -8,6 +8,19 @@ export const createCollectionSubscriber = (databaseId: string, collectionId: str
|
||||||
databases.listDocuments(databaseId, collectionId).then(data => store.set(data.documents))
|
databases.listDocuments(databaseId, collectionId).then(data => store.set(data.documents))
|
||||||
|
|
||||||
client.subscribe(`databases.${databaseId}.collections.${collectionId}.documents`, (response: RealtimeResponseEvent<any>) => {
|
client.subscribe(`databases.${databaseId}.collections.${collectionId}.documents`, (response: RealtimeResponseEvent<any>) => {
|
||||||
|
|
||||||
|
if (response.events.includes(`databases.${databaseId}.collections.${collectionId}.documents.*.delete`)) {
|
||||||
|
store.update(current => {
|
||||||
|
const index = current.findIndex(item => item.$id === response.payload.$id)
|
||||||
|
if (index === -1) return current
|
||||||
|
|
||||||
|
current.splice(index, 1)
|
||||||
|
return current
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.events.includes(`databases.${databaseId}.collections.${collectionId}.documents.*.update`)) {
|
||||||
store.update(current => {
|
store.update(current => {
|
||||||
const index = current.findIndex(item => item.$id === response.payload.$id)
|
const index = current.findIndex(item => item.$id === response.payload.$id)
|
||||||
if (index === -1) return current
|
if (index === -1) return current
|
||||||
|
@ -15,6 +28,17 @@ export const createCollectionSubscriber = (databaseId: string, collectionId: str
|
||||||
current[index] = response.payload
|
current[index] = response.payload
|
||||||
return current
|
return current
|
||||||
})
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.events.includes(`databases.${databaseId}.collections.${collectionId}.documents.*.create`)) {
|
||||||
|
store.update(current => {
|
||||||
|
current.push(response.payload)
|
||||||
|
return current
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return store
|
return store
|
||||||
|
|
|
@ -1,7 +1,16 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Layout from '../lib/components/Layout.svelte'
|
import Layout from '../lib/components/Layout.svelte'
|
||||||
|
import { createCollectionSubscriber } from '$lib/database'
|
||||||
|
|
||||||
|
const names = createCollectionSubscriber('6388a5e235c0c0fc8054', '6388a5e930cfd8a7ae56')
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Layout>
|
<Layout>
|
||||||
<h1>Home</h1>
|
<h1>Home</h1>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{#each $names as { name }}
|
||||||
|
<p>{name}</p>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
Loading…
Reference in New Issue