summaryrefslogtreecommitdiff
path: root/app/zodiac.hoon
blob: 0718da15f523b4d9dc7a64fb02e05a98359c9e2d (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/-  *zodiac
/+  dbug, metamask
/=  router  /web/router
=|  versioned-state
=*  state  -
%-  agent:dbug
^-  agent:gall
|_  =bowl:gall
+*  this  .
    metalib  ~(. metamask [sessions.state bowl])
++  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)
  =/  vs  !<(versioned-state old-state)
  ~&  vs=vs
  =.  state
  ?-  -.vs 
    %0  vs
  ==
  `this
::
++  on-poke
  |=  [=mark =vase]
  ^-  (quip card:agent:gall agent:gall)
  |^
  ?+  mark  `this
    %noun  (on-poke-noun !<(* vase))
    %handle-http-request
      =/  order  !<([id=@ta req=inbound-request:eyre] vase)
      =/  weblib  ~(. router [bowl id.order req.order state])
      :-  route:weblib  this
  ==
  ++  on-poke-noun  |=  a=*
  ?:  ?=  [%logout @ @]  a
    ~&  "loggingout"
    =^  cards  sessions.state  (handle-logout:metalib +.a)  
    [cards this]

  =.  sessions.state
  ?+  a  sessions.state
  [%meta @t]        (handle-meta:metalib +.a)
  [%auth @p @ @uv]  (handle-auth:metalib +.a)  
  ==
  `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
--