summaryrefslogtreecommitdiff
path: root/desk/ted/beg.hoon
blob: 2cabbeabf0a91403354f816a26ae9c17ab83500b (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
/-  spider
/+  strandio, jsonlib=json-nostrill
=,  strand=strand:spider
=,  strand-fail=strand-fail:libstrand:spider
^-  thread:spider
|=  arg=vase
  =/  m  (strand ,vase)  ^-  form:m
  |^
  =/  ujon  !<((unit json) arg)
  :: ~&  ujon=ujon
  ?~  ujon  (pure:m !>(bail))
  =/  req  (ui:de:jsonlib u.ujon)
  ?~  req  (pure:m !>(bail))
  ?.  ?=(%begs -.u.req)  (pure:m !>(bail))
  ?-  +<.u.req
    %feed
      ;<  =bowl:spider  bind:m  get-bowl:strandio
      =/  desk  q.byk.bowl
      ~&  dock=[+>.u.req desk]
      ;<  =cage  bind:m  (watch-one:strandio /beg/feed [+>.u.req desk] /beg/feed)
      ~&  >  watch-cage=-.cage
      =/  j  !<(json +.cage)
      (pure:m !>(j))

    %thread
      (pure:m !>(bail))
  ==
    ++  bail  ^-  json
    %+  frond:enjs:format  %error
    s+'error'
  --