From cb61b8e34942e661a394069302cd39827c92ae33 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 5 Jan 2025 17:17:52 -0800 Subject: add json route --- api/api.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'api/api.go') diff --git a/api/api.go b/api/api.go index 22ea4a8..43dd476 100644 --- a/api/api.go +++ b/api/api.go @@ -53,6 +53,13 @@ func IdContinuation(context *types.RequestContext, req *http.Request, resp http. } } +func SetJsonContinuation(context *types.RequestContext, req *http.Request, resp http.ResponseWriter) types.ContinuationChain { + return func(success types.Continuation, _failure types.Continuation) types.ContinuationChain { + resp.Header().Set("Content-Type", "application/json") + return success(context, req, resp) + } +} + func CacheControlMiddleware(next http.Handler, maxAge int) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { header := fmt.Sprintf("public, max-age=%d", maxAge) @@ -86,10 +93,10 @@ func MakeMux(argv *args.Arguments, dbConn *sql.DB) *http.ServeMux { LogRequestContinuation(requestContext, r, w)(whois.FetchLatestName, FailurePassingContinuation)(template.TemplateContinuation("home.html", true), FailurePassingContinuation)(LogExecutionTimeContinuation, LogExecutionTimeContinuation)(IdContinuation, IdContinuation) }) - mux.HandleFunc("GET /name", func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc("GET /updates", func(w http.ResponseWriter, r *http.Request) { requestContext := makeRequestContext() - LogRequestContinuation(requestContext, r, w)(whois.FetchLatestName, FailurePassingContinuation)(template.TemplateContinuation("name.tmpl", false), FailurePassingContinuation)(LogExecutionTimeContinuation, LogExecutionTimeContinuation)(IdContinuation, IdContinuation) + LogRequestContinuation(requestContext, r, w)(whois.ListUpdates, FailurePassingContinuation)(SetJsonContinuation, FailurePassingContinuation)(template.TemplateContinuation("updates.json.tmpl", false), FailurePassingContinuation)(LogExecutionTimeContinuation, LogExecutionTimeContinuation)(IdContinuation, IdContinuation) }) return mux -- cgit v1.2.3-70-g09d2