From ddd8d7cac085037c1eff4693325228ac9e1c403e Mon Sep 17 00:00:00 2001 From: lash Date: Sun, 19 Jan 2025 09:35:09 +0000 Subject: [PATCH] implement missing context --- request/http/server.go | 2 +- request/request.go | 14 +++++++------- storage/storage.go | 6 +++++- storage/storage_service.go | 1 + 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/request/http/server.go b/request/http/server.go index 92d4fa6..d514e5f 100644 --- a/request/http/server.go +++ b/request/http/server.go @@ -80,7 +80,7 @@ func (hh *HTTPRequestHandler) ServeHTTP(w http.ResponseWriter, req *http.Request w.WriteHeader(200) w.Header().Set("Content-Type", "text/plain") rqs, err = hh.Output(rqs) - rqs, perr = hh.Reset(rqs) + rqs, perr = hh.Reset(rqs.Ctx, rqs) if err != nil { hh.WriteError(w, 500, err) return diff --git a/request/request.go b/request/request.go index ce52ffb..3132446 100644 --- a/request/request.go +++ b/request/request.go @@ -27,16 +27,16 @@ type RequestSession struct { // TODO: seems like can remove this. type RequestParser interface { - GetSessionId(ctx context.Context, rq any) (string, error) - GetInput(rq any) ([]byte, error) + GetSessionId(context.Context, any) (string, error) + GetInput(any) ([]byte, error) } type RequestHandler interface { GetConfig() engine.Config GetRequestParser() RequestParser - GetEngine(cfg engine.Config, rs resource.Resource, pe *persist.Persister) engine.Engine - Process(rs RequestSession) (RequestSession, error) - Output(rs RequestSession) (RequestSession, error) - Reset(rs RequestSession) (RequestSession, error) - Shutdown() + GetEngine(engine.Config, resource.Resource, *persist.Persister) engine.Engine + Process(RequestSession) (RequestSession, error) + Output(RequestSession) (RequestSession, error) + Reset(context.Context, RequestSession) (RequestSession, error) + Shutdown(ctx context.Context) } diff --git a/storage/storage.go b/storage/storage.go index 56150ce..8638863 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -16,6 +16,10 @@ type Storage struct { UserdataDb db.Db } +func (s *Storage) Close(ctx context.Context) error { + return s.UserdataDb.Close(ctx) +} + type StorageProvider interface { Get(sessionId string) (*Storage, error) Put(sessionId string, storage *Storage) error @@ -46,5 +50,5 @@ func (p *SimpleStorageProvider) Put(sessionId string, storage *Storage) error { } func (p *SimpleStorageProvider) Close(ctx context.Context) error { - return p.Storage.UserdataDb.Close(ctx) + return p.Storage.Close(ctx) } diff --git a/storage/storage_service.go b/storage/storage_service.go index 5b71785..c40754c 100644 --- a/storage/storage_service.go +++ b/storage/storage_service.go @@ -195,6 +195,7 @@ func (ms *MenuStorageService) ensureDbDir() error { return nil } +// TODO: how to handle persister here? func (ms *MenuStorageService) Close(ctx context.Context) error { errA := ms.stateStore.Close(ctx) errB := ms.userDataStore.Close(ctx)