2021-04-04 11:10:32 -04:00
|
|
|
! Copyright (C) 2020 .
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
USING: kernel http.server http.server.responses http.server.dispatchers furnace.actions html.forms accessors namespaces io.servers io.sockets.secure.debug sequences validators ;
|
2021-04-04 11:10:32 -04:00
|
|
|
USING: bonerbonerboner.services ;
|
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
USING: prettyprint ;
|
2021-04-04 11:10:32 -04:00
|
|
|
IN: bonerbonerboner
|
|
|
|
|
|
|
|
TUPLE: bbb < dispatcher ;
|
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
: bbb-themes ( -- themes )
|
|
|
|
{ "bbb" "rocket" "hockey" } ;
|
|
|
|
|
|
|
|
: v-valid-theme ( str -- theme )
|
|
|
|
dup bbb-themes member? [ "not a valid theme" throw ] unless ;
|
|
|
|
|
|
|
|
: validate-theme ( -- )
|
|
|
|
{
|
|
|
|
{ "theme" [ v-required v-valid-theme ] }
|
|
|
|
} validate-params ;
|
|
|
|
|
2021-04-04 11:10:32 -04:00
|
|
|
: <theme-action> ( -- action )
|
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
<page-action>
|
2021-04-04 11:10:32 -04:00
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
[
|
|
|
|
validate-theme
|
|
|
|
] >>init
|
2021-04-04 11:10:32 -04:00
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
{ bbb "templates/themes" } >>template ;
|
2021-04-04 11:10:32 -04:00
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
: <heartbeat-action> ( -- action )
|
|
|
|
<action> [ "bonerbonerboner" <text-content> ] >>display ;
|
2021-04-04 11:10:32 -04:00
|
|
|
|
|
|
|
: <bbb> ( -- responder )
|
|
|
|
bbb new-dispatcher
|
2021-04-11 23:04:12 -04:00
|
|
|
<heartbeat-action> "heartbeat" add-responder
|
|
|
|
<slack-event-action> "slack-events" add-responder
|
|
|
|
<theme-action> "subdomain" add-responder ;
|
2021-04-04 11:10:32 -04:00
|
|
|
|
2021-04-11 23:04:12 -04:00
|
|
|
SYMBOL: current-bbb-server
|
|
|
|
: run-bbb-server ( -- )
|
2021-04-04 11:10:32 -04:00
|
|
|
<bbb> main-responder set-global
|
2021-04-11 23:04:12 -04:00
|
|
|
8080 httpd current-bbb-server set ;
|
|
|
|
|
|
|
|
: restart-bbb-server ( -- )
|
|
|
|
current-bbb-server get stop-server
|
|
|
|
run-bbb-server ;
|