summaryrefslogtreecommitdiff
path: root/desk/app/nostril.hoon
blob: f941493e10e0499bb7b4390ac01a8de780ccd06c (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/-  sur=nostril
/+  lib=nostril, shim, dbug 
/=  web  /web/router
|%
+$  versioned-state  $%(state-0:sur)
--
=|  versioned-state
=*  state  -
%-  agent:dbug
^-  agent:gall
|_  =bowl:gall
+*  this  .
    rout  ~(. router:web [state bowl])
    cards  ~(. cards:lib bowl)
++  on-init
  ^-  (quip card:agent:gall agent:gall)
  :_  this(state default:sur)
  :~  shim-binding:cards
  ==
::
++  on-save
  ^-  vase
  !>(state)
::
++  on-load
  |~  old-state=vase
  ^-  (quip card:agent:gall agent:gall)
  =/  old-state  !<(versioned-state old-state)
  ?-  -.old-state
    %0  `this(state old-state)
  ==
::
++  on-poke
  |~  [=mark =vase]
  ^-  (quip card:agent:gall agent:gall)
  ~&  >>  on-poke-nostril=mark
  |^
  ?+  mark  `this
    %noun  debug
    %json  on-ws
    %handle-http-request  serve
  ==
  ::  web ui
  ++  serve
    =/  order  !<(order:web vase)
    :: ~&  request.req.order
    ?:  .=(url.request.req.order '/nostr-shim')
      =/  event  (handle:shim order)
      ?~  event  `this
      =/  nevents=(list event:sur)  [u.event events]
      =/  nevents2=(list event:sur)  (scag 100 nevents)
      =.  events  nevents2
      =/  response  (ebail:rout id.order)
      [response this]

    ::
    :_  this  (rout:rout order)
  
  ::
  ++  on-ws
    =/  jon=json  !<(json vase)
    ~&  >  on-ws-jon=jon
    
    `this
  ::
  ++  debug
    =/  noun  !<(* vase)
    ?+  -.noun  `this
      %genkey
        =/  keys  (gen-keys:lib eny.bowl)
        ~&  keys=keys
        `this
      %rt  ::  relay test
        :_  this  :_  ~
        ::  khan 
        =/  relay-list=(list json)  %+  turn  ~(tap in relays)
        |=  t=@t  ^-  json  [%s t]
        =/  req-body=json  %-  frond:enjs:format  [%relays %a relay-list]
        =/  headers  :~
          [key='content-type' value='application/json']
        ==
        =/  =request:http  [%'POST' shim-url:sur headers `(json-body:web req-body)]
        =/  pat  /lol/lmao
        [%pass (weld /ws pat) %arvo %k %fard dap.bowl %fetch %noun !>(request)]  
    ==
  ::
  --
::
++  on-watch
  |~  =(pole knot)
  ^-  (quip card:agent:gall agent:gall)
  `this
::
++  on-leave
  |~  =(pole knot)
  ^-  (quip card:agent:gall agent:gall)
  `this
::
++  on-peek
  |~  =(pole knot)
  ^-  (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
--