summaryrefslogtreecommitdiff
path: root/desk/lib/shim.hoon
diff options
context:
space:
mode:
Diffstat (limited to 'desk/lib/shim.hoon')
-rw-r--r--desk/lib/shim.hoon53
1 files changed, 53 insertions, 0 deletions
diff --git a/desk/lib/shim.hoon b/desk/lib/shim.hoon
new file mode 100644
index 0000000..ad07685
--- /dev/null
+++ b/desk/lib/shim.hoon
@@ -0,0 +1,53 @@
+/- sur=nostril
+/+ sr=sortug
+/= router /web/router
+|%
+++ handle
+ |= [eyre-id=@ta req=inbound-request:eyre]
+ ^- (unit event:sur)
+ ?~ body.request.req ~
+ =/ ures (de:json:html q.u.body.request.req)
+ ?~ ures ~
+ =/ event (event:dejs u.ures)
+ :: TODO log on failure or something
+ `event
+
+
+++ dejs
+=, dejs:format
+|%
+++ event
+ |= jon=json
+ ^- event:sur
+ %. jon
+ %- ot :~
+ id+de-hex
+ pubkey+de-hex
+ ['created_at' ni]
+ kind+ni
+ tags+de-tags
+ content+so
+ sig+de-hex
+ ==
+++ de-hex |= jon=json ^- @ux
+ ?> ?=(%s -.jon)
+ =/ atom=(unit @) (slaw:sr %ux p.jon)
+ ?~ atom !!
+ u.atom
+::
+++ de-tags |= jon=json ^- (list tag:sur)
+ ?> ?=(%a -.jon) %+ turn p.jon de-tag
+++ de-tag |= j=json ^- tag:sur
+ ?> ?=(%a -.j)
+ =/ l=(list json) p.j
+ =/ key (@t ->.l)
+ =/ value (@t +<+.l)
+ =/ rest ;; (list @t) %+ turn ((list json) +>.l) |= aj=json (@t +.aj)
+
+ [key value rest]
+
+
+ --
+
+--
+