/- *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 --