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
1
import { Client, CredentialManager } from "@atcute/client";
2
2
import { lexiconDoc } from "@atcute/lexicon-doc";
3
3
-
import { ActorIdentifier, is } from "@atcute/lexicons";
3
3
+
import { ActorIdentifier, is, ResourceUri } from "@atcute/lexicons";
4
4
import { A, useLocation, useNavigate, useParams } from "@solidjs/router";
5
5
import { createResource, createSignal, ErrorBoundary, Show, Suspense } from "solid-js";
6
6
import { Backlinks } from "../components/backlinks.jsx";
···
50
50
}
51
51
setCID(res.data.cid);
52
52
setExternalLink(checkUri(res.data.uri, res.data.value));
53
53
+
verify(res.data);
53
54
55
55
+
return res.data;
56
56
+
};
57
57
+
58
58
+
const verify = async (record: {
59
59
+
uri: ResourceUri;
60
60
+
value: Record<string, unknown>;
61
61
+
cid?: string | undefined;
62
62
+
}) => {
54
63
try {
55
64
if (params.collection in lexicons) {
56
56
-
if (is(lexicons[params.collection], res.data.value)) setValidSchema(true);
65
65
+
if (is(lexicons[params.collection], record.value)) setValidSchema(true);
57
66
else setValidSchema(false);
58
67
} else if (params.collection === "com.atproto.lexicon.schema") {
59
68
try {
60
60
-
lexiconDoc.parse(res.data.value, { mode: "passthrough" });
69
69
+
lexiconDoc.parse(record.value, { mode: "passthrough" });
61
70
setValidSchema(true);
62
71
} catch (e) {
63
72
console.error(e);
···
66
75
}
67
76
const { errors } = await verifyRecord({
68
77
rpc: rpc,
69
69
-
uri: res.data.uri,
70
70
-
cid: res.data.cid!,
71
71
-
record: res.data.value,
72
72
-
didDoc: didDocCache[res.data.uri.split("/")[2]],
78
78
+
uri: record.uri,
79
79
+
cid: record.cid!,
80
80
+
record: record.value,
81
81
+
didDoc: didDocCache[record.uri.split("/")[2]],
73
82
});
74
83
75
84
if (errors.length > 0) {
···
81
90
console.error(err);
82
91
setValidRecord(false);
83
92
}
84
84
-
85
85
-
return res.data;
86
93
};
87
94
88
95
const [record, { refetch }] = createResource(fetchRecord);