on master help sign in
Clarify difference between V1 and V2
3f6ecfaTereza Sokol
worker/src/Endpoint/Compile.hs+27−23
@@ -69,42 +69,46 @@ allowedOrigins =
69
69
70endpointV1 :: A.Artifacts -> Snap ()
70endpointV1 :: A.Artifacts -> Snap ()
71endpointV1 artifacts =
71endpointV1 artifacts =
72− endpoint artifacts $ \source outcome ->
72+ endpoint artifacts $
73− case outcome of
73+ RenderTemplates
74− Success name builder ->
75− writeBuilder (Html.sandwich name builder)
74+ { onSuccess = Html.sandwich
76−
77− NoMain ->
78− writeBuilder $ renderV1ProblemReport noMain
75+ , onProblems = renderV1ProblemReport
79−
76+ }
80− BadInput name err ->
81− writeBuilder $ renderV1ProblemReport $
82− Help.compilerReport "/" (Error.Module name "/try" File.zeroTime source err) []
83
77
84
78
85endpointV2 :: A.Artifacts -> Snap ()
79endpointV2 :: A.Artifacts -> Snap ()
86endpointV2 artifacts =
80endpointV2 artifacts =
87− endpoint artifacts $ \source outcome ->
81+ endpoint artifacts $
88− case outcome of
82+ RenderTemplates
89− Success name builder ->
90− writeBuilder (renderV2SuccessReport name builder)
83+ { onSuccess = renderV2SuccessReport
84+ , onProblems = renderV2ProblemReport
85+ }
91
86
92− NoMain ->
93− writeBuilder $ renderV2ProblemReport noMain
94
87
95− BadInput name err ->
88+data RenderTemplates =
96− writeBuilder $ renderV2ProblemReport $
89+ RenderTemplates
97− Help.compilerReport "/" (Error.Module name "/try" File.zeroTime source err) []
90+ { onSuccess :: N.Name -> B.Builder -> B.Builder
91+ , onProblems :: Help.Report -> B.Builder
92+ }
98
93
99
94
100−endpoint :: A.Artifacts -> (B.ByteString -> Outcome -> Snap ()) -> Snap ()
95+endpoint :: A.Artifacts -> RenderTemplates -> Snap ()
101−endpoint artifacts respondToOutcome =
96+endpoint artifacts templates =
102 Cors.allow POST allowedOrigins $
97 Cors.allow POST allowedOrigins $
103 do result <- foldMultipart defaultUploadPolicy ignoreFile 0
98 do result <- foldMultipart defaultUploadPolicy ignoreFile 0
104 case result of
99 case result of
105 ([("code",source)], 0) ->
100 ([("code",source)], 0) ->
106 do modifyResponse $ setContentType "text/html; charset=utf-8"
101 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) []
108
112
109 _ ->
113 _ ->
110 do modifyResponse $ setResponseStatus 400 "Bad Request"
114 do modifyResponse $ setResponseStatus 400 "Bad Request"