2019-07-04 09:09:44 +03:00
|
|
|
=, eyre
|
2019-03-12 03:05:24 +03:00
|
|
|
|%
|
2019-11-20 00:41:26 +03:00
|
|
|
+$ request-line
|
|
|
|
$: [ext=(unit @ta) site=(list @t)]
|
|
|
|
args=(list [key=@t value=@t])
|
|
|
|
==
|
2019-03-12 03:05:24 +03:00
|
|
|
:: +parse-request-line: take a cord and parse out a url
|
|
|
|
::
|
|
|
|
++ parse-request-line
|
|
|
|
|= url=@t
|
2019-11-20 00:41:26 +03:00
|
|
|
^- request-line
|
2019-03-12 03:05:24 +03:00
|
|
|
(fall (rush url ;~(plug apat:de-purl:html yque:de-purl:html)) [[~ ~] ~])
|
|
|
|
::
|
2019-03-19 23:47:19 +03:00
|
|
|
++ manx-to-octs
|
|
|
|
|= man=manx
|
|
|
|
^- octs
|
2019-03-30 02:04:34 +03:00
|
|
|
(as-octt:mimes:html (en-xml:html man))
|
2019-03-19 23:47:19 +03:00
|
|
|
::
|
2019-03-29 20:44:37 +03:00
|
|
|
++ json-to-octs
|
|
|
|
|= jon=json
|
|
|
|
^- octs
|
2019-03-30 02:04:34 +03:00
|
|
|
(as-octt:mimes:html (en-json:html jon))
|
2019-03-29 20:44:37 +03:00
|
|
|
::
|
2019-03-22 03:14:20 +03:00
|
|
|
++ app
|
|
|
|
|%
|
|
|
|
::
|
|
|
|
:: +require-authorization: redirect to the login page when unauthenticated
|
|
|
|
::
|
|
|
|
++ require-authorization
|
2019-11-09 23:22:59 +03:00
|
|
|
|= $: =inbound-request:eyre
|
|
|
|
handler=$-(inbound-request:eyre simple-payload:http)
|
|
|
|
==
|
2019-11-09 10:31:11 +03:00
|
|
|
^- simple-payload:http
|
2019-03-22 03:14:20 +03:00
|
|
|
::
|
|
|
|
?: authenticated.inbound-request
|
2019-11-05 10:42:59 +03:00
|
|
|
~! this
|
|
|
|
~! +:*handler
|
2019-03-22 03:14:20 +03:00
|
|
|
(handler inbound-request)
|
|
|
|
::
|
|
|
|
=/ redirect=cord
|
|
|
|
%- crip
|
|
|
|
"/~/login?redirect={(trip url.request.inbound-request)}"
|
2019-11-09 10:31:11 +03:00
|
|
|
[[307 ['location' redirect]~] ~]
|
2019-03-22 03:14:20 +03:00
|
|
|
::
|
2019-11-09 23:22:59 +03:00
|
|
|
++ give-simple-payload
|
2019-11-13 11:38:35 +03:00
|
|
|
|= [eyre-id=@ta =simple-payload:http]
|
2019-11-19 07:36:21 +03:00
|
|
|
^- (list card:agent:gall)
|
2019-11-13 11:38:35 +03:00
|
|
|
=/ header-cage
|
|
|
|
[%http-response-header !>(response-header.simple-payload)]
|
|
|
|
=/ data-cage
|
|
|
|
[%http-response-data !>(data.simple-payload)]
|
|
|
|
:~ [%give %fact `/http-response/[eyre-id] header-cage]
|
|
|
|
[%give %fact `/http-response/[eyre-id] data-cage]
|
|
|
|
[%give %kick `/http-response/[eyre-id] ~]
|
2019-11-09 23:22:59 +03:00
|
|
|
==
|
2019-03-22 03:14:20 +03:00
|
|
|
--
|
|
|
|
++ gen
|
|
|
|
|%
|
|
|
|
::
|
|
|
|
++ html-response
|
|
|
|
|= =octs
|
|
|
|
^- simple-payload:http
|
|
|
|
[[200 ['content-type' 'text/html']~] `octs]
|
|
|
|
::
|
|
|
|
++ js-response
|
|
|
|
|= =octs
|
|
|
|
^- simple-payload:http
|
2019-07-12 21:04:47 +03:00
|
|
|
[[200 ['content-type' 'text/javascript']~] `octs]
|
2019-03-22 03:14:20 +03:00
|
|
|
::
|
2019-03-29 20:44:37 +03:00
|
|
|
++ json-response
|
|
|
|
|= =octs
|
|
|
|
^- simple-payload:http
|
|
|
|
[[200 ['content-type' 'application/json']~] `octs]
|
|
|
|
::
|
2019-03-22 03:14:20 +03:00
|
|
|
++ css-response
|
|
|
|
|= =octs
|
|
|
|
^- simple-payload:http
|
|
|
|
[[200 ['content-type' 'text/css']~] `octs]
|
|
|
|
::
|
2019-11-13 11:38:35 +03:00
|
|
|
++ manx-response
|
|
|
|
|= man=manx
|
|
|
|
^- simple-payload:http
|
|
|
|
[[200 ['content-type' 'text/html']~] `(manx-to-octs man)]
|
|
|
|
::
|
|
|
|
++ png-response
|
|
|
|
|= =octs
|
|
|
|
^- simple-payload:http
|
|
|
|
[[200 ['content-type' 'image/png']~] `octs]
|
|
|
|
::
|
|
|
|
++ woff2-response
|
|
|
|
|= =octs
|
|
|
|
^- simple-payload:http
|
|
|
|
[[200 ['content-type' 'font/woff2']~] `octs]
|
|
|
|
::
|
2019-03-22 03:14:20 +03:00
|
|
|
++ not-found
|
|
|
|
^- simple-payload:http
|
|
|
|
[[404 ~] ~]
|
|
|
|
::
|
|
|
|
++ login-redirect
|
|
|
|
|= =request:http
|
|
|
|
^- simple-payload:http
|
|
|
|
=/ redirect=cord
|
|
|
|
%- crip
|
|
|
|
"/~/login?redirect={(trip url.request)}"
|
|
|
|
[[307 ['location' redirect]~] ~]
|
|
|
|
::
|
|
|
|
++ redirect
|
|
|
|
|= redirect=cord
|
|
|
|
^- simple-payload:http
|
|
|
|
[[307 ['location' redirect]~] ~]
|
|
|
|
--
|
2019-03-12 03:05:24 +03:00
|
|
|
--
|