tally: be safer wrt mangled metadata

Previously, if metadata-store said a graph existed, we'd unconditionally scry
for it. Now, we make sure the graph actually exists, to avoid risking a crash.
This commit is contained in:
fang 2021-03-03 17:14:07 +01:00 committed by GitHub
parent 7d451a37b8
commit 883a56382f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -61,14 +61,24 @@
::NOTE we only count graphs for now
?. &(=(%graph app-name.m) =(our creator.metadatum)) ~
`[module.metadatum resource.m]
:: for sanity checks
::
=/ real=(set resource:re)
=/ upd=update:ga
%+ scry update:ga
[%x %graph-store /keys/graph-update]
?> ?=(%keys -.q.upd)
resources.q.upd
:: count activity per channel
::
=/ activity=(list [resource:re members=@ud (list [resource:re mod=term week=@ud authors=@ud])])
%+ turn crowds
|= [g=resource:re m=@ud]
:+ g m
%+ turn (~(got by channels) g)
%+ murn (~(got by channels) g)
|= [m=term r=resource:re]
?. (~(has in real) r) ~
%- some
:+ r m
::NOTE graph-store doesn't use the full resource-style path here!
=/ upd=update:ga