on master help sign in
Clarify difference between V1 and V2
commit3f6ecfac80b07c6bf016791c8ddc524496ba3893 authorTereza Sokol <terezasokol@gmail.com> dateSun 22 Aug 2021, 12:01 (5 years ago) parentaf04819
1 file changed+27−23
worker/src/Endpoint/Compile.hs+27−23
worker/src/Endpoint/Compile.hs+27−23
@@ -69,42 +69,46 @@ allowedOrigins =
6969
7070endpointV1 :: A.Artifacts -> Snap ()
7171endpointV1 artifacts =
72− endpoint artifacts $ \source outcome ->
73− case outcome of
74− Success name builder ->
75− writeBuilder (Html.sandwich name builder)
76−
77− NoMain ->
78− writeBuilder $ renderV1ProblemReport noMain
79−
80− BadInput name err ->
81− writeBuilder $ renderV1ProblemReport $
82− Help.compilerReport "/" (Error.Module name "/try" File.zeroTime source err) []
72+ endpoint artifacts $
73+ RenderTemplates
74+ { onSuccess = Html.sandwich
75+ , onProblems = renderV1ProblemReport
76+ }
8377
8478
8579endpointV2 :: A.Artifacts -> Snap ()
8680endpointV2 artifacts =
87− endpoint artifacts $ \source outcome ->
88− case outcome of
89− Success name builder ->
90− writeBuilder (renderV2SuccessReport name builder)
81+ endpoint artifacts $
82+ RenderTemplates
83+ { onSuccess = renderV2SuccessReport
84+ , onProblems = renderV2ProblemReport
85+ }
9186
92− NoMain ->
93− writeBuilder $ renderV2ProblemReport noMain
9487
95− BadInput name err ->
96− writeBuilder $ renderV2ProblemReport $
97− Help.compilerReport "/" (Error.Module name "/try" File.zeroTime source err) []
88+data RenderTemplates =
89+ RenderTemplates
90+ { onSuccess :: N.Name -> B.Builder -> B.Builder
91+ , onProblems :: Help.Report -> B.Builder
92+ }
9893
9994
100−endpoint :: A.Artifacts -> (B.ByteString -> Outcome -> Snap ()) -> Snap ()
101−endpoint artifacts respondToOutcome =
95+endpoint :: A.Artifacts -> RenderTemplates -> Snap ()
96+endpoint artifacts templates =
10297 Cors.allow POST allowedOrigins $
10398 do result <- foldMultipart defaultUploadPolicy ignoreFile 0
10499 case result of
105100 ([("code",source)], 0) ->
106101 do modifyResponse $ setContentType "text/html; charset=utf-8"
107− respondToOutcome source (compile artifacts source)
102+ case compile artifacts source of
103+ Success name builder ->
104+ writeBuilder (onSuccess templates name builder)
105+
106+ NoMain ->
107+ writeBuilder $ onProblems templates noMain
108+
109+ BadInput name err ->
110+ writeBuilder $ onProblems templates $
111+ Help.compilerReport "/" (Error.Module name "/try" File.zeroTime source err) []
108112
109113 _ ->
110114 do modifyResponse $ setResponseStatus 400 "Bad Request"