summaryrefslogtreecommitdiff
path: root/app/zodiac.hoon
blob: 43a569470b2ba1194786667584e3cb656eabd484 (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
54
55
56
57
58
59
60
61
62
/-  *zodiac
/=  router  /web/router
=|  versioned-state
=*  state  -
^-  agent:gall
|_  =bowl:gall
+*  this  .
++  on-init
  ^-  (quip card:agent:gall agent:gall)
  :_  this
    =/  weblib  router(bowl bowl)
    :~((eyre-binding-card:weblib /zodiac))
::
++  on-save
  ^-  vase
  !>(state)
::
++  on-load
  |~  old-state=vase
  ^-  (quip card:agent:gall agent:gall)
  `this
::
++  on-poke
  |=  [=mark =vase]
  ^-  (quip card:agent:gall agent:gall)
  ?+  mark  `this
    %handle-http-request
      =/  order  !<([id=@ta req=inbound-request:eyre] vase)
      =/  weblib  ~(. router [bowl id.order req.order state])
      :-  route:weblib  this
  ==
::
++  on-watch
  |~  path
  ^-  (quip card:agent:gall agent:gall)
  `this
::
++  on-leave
  |~  path
  ^-  (quip card:agent:gall agent:gall)
  `this
::
++  on-peek
  |~  path
  ^-  (unit (unit cage))
  ~
::
++  on-agent
  |~  [wire sign:agent:gall]
  ^-  (quip card:agent:gall agent:gall)
  `this
::
++  on-arvo
  |~  [wire =sign-arvo]
  ^-  (quip card:agent:gall agent:gall)
  `this
::
++  on-fail
  |~  [term tang]
  ^-  (quip card:agent:gall agent:gall)
  `this
--