summaryrefslogtreecommitdiff
path: root/desk/lib/shim.hoon
blob: cc8e60e633e1bfbafe1ab5d9396a8d8a9975fe90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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]
        
++  metadata  (om so)
  --
      
--