Skip to content
This repository was archived by the owner on Jan 8, 2025. It is now read-only.

Commit d37c7f0

Browse files
committed
fix: updating
1 parent 389b428 commit d37c7f0

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

Diff for: src/handlers/create.ts

+7-12
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { IndexedFormula, NamedNode, Statement, UpdateManager } from 'rdflib'
1+
import { IndexedFormula, NamedNode, Statement } from 'rdflib'
22

33
import { QueryResult, Shape } from '../shape'
44
import {
5+
ValidationResult,
56
getAllStatementsOfNode,
67
validateShex,
7-
ValidationResult,
88
} from '../validate'
99

1010
export interface CreateArgs<CreateShapeArgs> {
@@ -46,7 +46,7 @@ export async function create<ShapeType, CreateShapeArgs>(
4646
resolve({ doc, errors })
4747
} else {
4848
if (!doesntExist) {
49-
await updateExisting(shape.store, doc, [], ins)
49+
await updateExisting(shape.store, [], ins)
5050
.catch((err) => resolve({ doc, errors: [err] }))
5151
.then(() => resolve({ doc, data: newShape[0], errors }))
5252
} else {
@@ -100,19 +100,14 @@ export function validateNewShape<ShapeType, CreateShapeArgs>(
100100

101101
export function updateExisting(
102102
store: IndexedFormula,
103-
doc: string,
104103
del: Statement[],
105104
ins: Statement[],
106105
): Promise<void> {
107106
return new Promise((resolve, reject) => {
108-
store.remove(del)
109-
store.add(ins)
110-
store.fetcher
111-
?.putBack(new NamedNode(doc), { withCredentials: false })
112-
.then((res) => {
113-
if (res.ok) resolve()
114-
else reject()
115-
})
107+
store.updater?.update(del, ins, (_doc, ok, err) => {
108+
if (ok) resolve()
109+
else reject(err)
110+
})
116111
})
117112
}
118113

Diff for: src/handlers/update.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ export function update<ShapeType, CreateShapeArgs>(
2626
if (!newShapes || errors) {
2727
resolve({ doc, errors })
2828
} else {
29-
await updateExisting(shape.store, doc, del, ins)
30-
.catch((err) => resolve({ doc, errors: [...(errors ?? []), err] }))
29+
await updateExisting(shape.store, del, ins)
30+
.catch((err) =>
31+
resolve({ doc, errors: err ? [...(errors ?? []), err] : undefined }),
32+
)
3133
.then(() => {
3234
resolve({ doc, data: newShapes[0], errors })
3335
})

0 commit comments

Comments
 (0)