From 9fb0427b40ecb706e90550651ca44faed9ae5865 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 14 May 2020 10:31:39 -0400 Subject: [PATCH] API: add request timeout configuration --- api/server.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api/server.go b/api/server.go index a06bd94..300b702 100644 --- a/api/server.go +++ b/api/server.go @@ -6,6 +6,7 @@ import ( "net/http" "os" "strconv" + "time" "git.sr.ht/~sircmpwn/getopt" "git.sr.ht/~sircmpwn/gqlgen/handler" @@ -66,10 +67,21 @@ func main() { log.Fatalf("Failed to open a database connection: %v", err) } + var timeout time.Duration + if to, ok := config.Get("git.sr.ht::api", "max-duration"); ok { + timeout, err = time.ParseDuration(to) + if err != nil { + panic(err) + } + } else { + timeout = 3 * time.Second + } + router := chi.NewRouter() router.Use(auth.Middleware(db)) router.Use(loaders.Middleware(db)) router.Use(middleware.Logger) + router.Use(middleware.Timeout(timeout)) gqlConfig := api.Config{ Resolvers: &graph.Resolver{DB: db}, -- 2.38.4