|
|
|
@ -18,6 +18,7 @@ import type { SolidLdoDataset } from "./SolidLdoDataset"; |
|
|
|
|
import type { AggregateSuccess } from "./requester/results/success/SuccessResult"; |
|
|
|
|
import type { ResourceResult } from "./resource/resourceResult/ResourceResult"; |
|
|
|
|
import type { |
|
|
|
|
IgnoredInvalidUpdateSuccess, |
|
|
|
|
UpdateDefaultGraphSuccess, |
|
|
|
|
UpdateSuccess, |
|
|
|
|
} from "./requester/results/success/UpdateSuccess"; |
|
|
|
@ -26,7 +27,6 @@ import type { |
|
|
|
|
UpdateResult, |
|
|
|
|
UpdateResultError, |
|
|
|
|
} from "./requester/requests/updateDataResource"; |
|
|
|
|
import { InvalidUriError } from "./requester/results/error/InvalidUriError"; |
|
|
|
|
import type { DatasetChanges, GraphNode } from "@ldo/rdf-utils"; |
|
|
|
|
import { splitChangesByGraph } from "./util/splitChangesByGraph"; |
|
|
|
|
|
|
|
|
@ -112,7 +112,7 @@ export class SolidLdoTransactionDataset |
|
|
|
|
| AggregateSuccess< |
|
|
|
|
ResourceResult<UpdateSuccess | UpdateDefaultGraphSuccess, Leaf> |
|
|
|
|
> |
|
|
|
|
| AggregateError<UpdateResultError | InvalidUriError> |
|
|
|
|
| AggregateError<UpdateResultError> |
|
|
|
|
> { |
|
|
|
|
const changes = this.getChanges(); |
|
|
|
|
const changesByGraph = splitChangesByGraph(changes); |
|
|
|
@ -123,7 +123,7 @@ export class SolidLdoTransactionDataset |
|
|
|
|
const results: [ |
|
|
|
|
GraphNode, |
|
|
|
|
DatasetChanges<Quad>, |
|
|
|
|
UpdateResult | InvalidUriError | UpdateDefaultGraphSuccess, |
|
|
|
|
UpdateResult | IgnoredInvalidUpdateSuccess | UpdateDefaultGraphSuccess, |
|
|
|
|
][] = await Promise.all( |
|
|
|
|
Array.from(changesByGraph.entries()).map( |
|
|
|
|
async ([graph, datasetChanges]) => { |
|
|
|
@ -140,14 +140,13 @@ export class SolidLdoTransactionDataset |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
if (isContainerUri(graph.value)) { |
|
|
|
|
console.log(datasetChanges.removed?.toString()); |
|
|
|
|
return [ |
|
|
|
|
graph, |
|
|
|
|
datasetChanges, |
|
|
|
|
new InvalidUriError( |
|
|
|
|
graph.value, |
|
|
|
|
`Container URIs are not allowed for custom data.`, |
|
|
|
|
), |
|
|
|
|
{ |
|
|
|
|
type: "ignoredInvalidUpdateSuccess", |
|
|
|
|
isError: false, |
|
|
|
|
} as IgnoredInvalidUpdateSuccess, |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
const resource = this.getResource(graph.value as LeafUri); |
|
|
|
@ -162,9 +161,7 @@ export class SolidLdoTransactionDataset |
|
|
|
|
|
|
|
|
|
if (errors.length > 0) { |
|
|
|
|
return new AggregateError( |
|
|
|
|
errors.map( |
|
|
|
|
(result) => result[2] as UpdateResultError | InvalidUriError, |
|
|
|
|
), |
|
|
|
|
errors.map((result) => result[2] as UpdateResultError), |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
return { |
|
|
|
@ -175,7 +172,8 @@ export class SolidLdoTransactionDataset |
|
|
|
|
.filter( |
|
|
|
|
(result): result is ResourceResult<UpdateSuccess, Leaf> => |
|
|
|
|
result.type === "updateSuccess" || |
|
|
|
|
result.type === "updateDefaultGraphSuccess", |
|
|
|
|
result.type === "updateDefaultGraphSuccess" || |
|
|
|
|
result.type === "ignoredInvalidUpdateSuccess", |
|
|
|
|
), |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|