tangled
alpha
login
or
join now
vielle.dev
/
pdsls
forked from
pds.ls/pdsls
0
fork
atom
atproto explorer
0
fork
atom
overview
issues
pulls
pipelines
move record verification outside resource
handle.invalid
6 months ago
57aa1f40
d239c78a
+16
-9
1 changed file
expand all
collapse all
unified
split
src
views
record.tsx
+16
-9
src/views/record.tsx
···
1
import { Client, CredentialManager } from "@atcute/client";
2
import { lexiconDoc } from "@atcute/lexicon-doc";
3
-
import { ActorIdentifier, is } from "@atcute/lexicons";
4
import { A, useLocation, useNavigate, useParams } from "@solidjs/router";
5
import { createResource, createSignal, ErrorBoundary, Show, Suspense } from "solid-js";
6
import { Backlinks } from "../components/backlinks.jsx";
···
50
}
51
setCID(res.data.cid);
52
setExternalLink(checkUri(res.data.uri, res.data.value));
0
53
0
0
0
0
0
0
0
0
54
try {
55
if (params.collection in lexicons) {
56
-
if (is(lexicons[params.collection], res.data.value)) setValidSchema(true);
57
else setValidSchema(false);
58
} else if (params.collection === "com.atproto.lexicon.schema") {
59
try {
60
-
lexiconDoc.parse(res.data.value, { mode: "passthrough" });
61
setValidSchema(true);
62
} catch (e) {
63
console.error(e);
···
66
}
67
const { errors } = await verifyRecord({
68
rpc: rpc,
69
-
uri: res.data.uri,
70
-
cid: res.data.cid!,
71
-
record: res.data.value,
72
-
didDoc: didDocCache[res.data.uri.split("/")[2]],
73
});
74
75
if (errors.length > 0) {
···
81
console.error(err);
82
setValidRecord(false);
83
}
84
-
85
-
return res.data;
86
};
87
88
const [record, { refetch }] = createResource(fetchRecord);
···
1
import { Client, CredentialManager } from "@atcute/client";
2
import { lexiconDoc } from "@atcute/lexicon-doc";
3
+
import { ActorIdentifier, is, ResourceUri } from "@atcute/lexicons";
4
import { A, useLocation, useNavigate, useParams } from "@solidjs/router";
5
import { createResource, createSignal, ErrorBoundary, Show, Suspense } from "solid-js";
6
import { Backlinks } from "../components/backlinks.jsx";
···
50
}
51
setCID(res.data.cid);
52
setExternalLink(checkUri(res.data.uri, res.data.value));
53
+
verify(res.data);
54
55
+
return res.data;
56
+
};
57
+
58
+
const verify = async (record: {
59
+
uri: ResourceUri;
60
+
value: Record<string, unknown>;
61
+
cid?: string | undefined;
62
+
}) => {
63
try {
64
if (params.collection in lexicons) {
65
+
if (is(lexicons[params.collection], record.value)) setValidSchema(true);
66
else setValidSchema(false);
67
} else if (params.collection === "com.atproto.lexicon.schema") {
68
try {
69
+
lexiconDoc.parse(record.value, { mode: "passthrough" });
70
setValidSchema(true);
71
} catch (e) {
72
console.error(e);
···
75
}
76
const { errors } = await verifyRecord({
77
rpc: rpc,
78
+
uri: record.uri,
79
+
cid: record.cid!,
80
+
record: record.value,
81
+
didDoc: didDocCache[record.uri.split("/")[2]],
82
});
83
84
if (errors.length > 0) {
···
90
console.error(err);
91
setValidRecord(false);
92
}
0
0
93
};
94
95
const [record, { refetch }] = createResource(fetchRecord);