emacs-survey/routes.jl

59 lines
1.9 KiB
Julia
Raw Normal View History

2022-02-10 13:31:07 +00:00
using Genie.Router, Genie.Requests, Genie.Renderers.Html
2022-10-02 08:17:02 +00:00
using ..Main.UserApp.SurveysController
using ..Main.UserApp.ResultsController
2021-12-17 18:09:25 +00:00
route("/") do
2022-02-10 13:31:07 +00:00
SurveysController.index()
end
route("/survey") do
SurveysController.serve(getpayload())
end
route("/submit", method=POST) do
SurveysController.submit(postpayload())
end
route("/submit-backpage", method=POST) do
SurveysController.submit(postpayload(), backpage=true)
end
2022-05-20 16:25:17 +00:00
route("/results/?") do; ResultsController.resultsindex() end
route("/results/:survey#([A-Za-z0-9]+)",
named = :surveyindex) do
surveyid = tryparse(SurveysController.SurveyID, payload(:survey), base=10)
ResultsController.resultsindex(surveyid)
end
2022-10-18 11:56:18 +00:00
route("/results/:surveyandformat#([A-Za-z0-9]+\\.[a-z0-9]+)") do
2022-10-02 08:17:02 +00:00
@info "" payload(:surveyandformat)
2022-10-18 11:56:18 +00:00
survey, format = match(r"([A-Za-z0-9]+)\.([a-z0-9]+)", payload(:surveyandformat)).captures
2022-10-02 08:17:02 +00:00
surveyid = tryparse(SurveysController.SurveyID, survey, base=10)
ResultsController.resultsfile(surveyid, format)
end
2022-10-18 11:56:18 +00:00
route("/results/:survey#([A-Za-z0-9]+)/:format#([a-z0-9]+)",
2022-05-20 16:25:17 +00:00
named = :surveyresult) do
surveyid = tryparse(SurveysController.SurveyID, payload(:survey), base=10)
ResultsController.resultsfile(surveyid, payload(:format))
end
2022-10-18 11:56:18 +00:00
route("/results/:survey#([A-Za-z0-9]+)/:responsefile#([A-Za-z0-9]+\\.[a-z0-9]+)",
2022-05-20 16:25:17 +00:00
named = :result) do
surveyid = tryparse(SurveysController.SurveyID, payload(:survey), base=10)
response, format = split(payload(:responsefile), '.')
responseid = tryparse(SurveysController.ResponseID, response,
base=SurveysController.UID_ENCBASE)
try
ResultsController.resultsfile(surveyid, responseid, format)
catch e
if e isa MethodError || e isa AssertionError
Router.error(404, currenturl(), MIME"text/html")
else
rethrow(e)
end
2022-02-10 13:31:07 +00:00
end
end