From 09abd1fb66d1307a574d42eaa4ab1eb71a245ce5 Mon Sep 17 00:00:00 2001 From: maru Date: Thu, 18 Apr 2024 02:02:02 -0400 Subject: [PATCH] Fix bug with /savedata/clear endpoint --- api/endpoints.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/api/endpoints.go b/api/endpoints.go index ce17889..1a53784 100644 --- a/api/endpoints.go +++ b/api/endpoints.go @@ -170,7 +170,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { } save = system - // /savedata/clear doesn't specify datatype, it is assumed to be 1 (session) + // /savedata/clear doesn't specify datatype, it is assumed to be 1 (session) } else if datatype == 1 || r.URL.Path == "/savedata/clear" { var session defs.SessionSaveData err = json.NewDecoder(r.Body).Decode(&session) @@ -191,8 +191,14 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { case "/savedata/delete": err = savedata.Delete(uuid, datatype, slot) case "/savedata/clear": + s, ok := save.(defs.SessionSaveData) + if !ok { + httpError(w, r, fmt.Errorf("save data is not type SessionSaveData"), http.StatusBadRequest) + return + } + // doesn't return a save, but it works - save, err = savedata.Clear(uuid, slot, daily.Seed(), save.(defs.SessionSaveData)) + save, err = savedata.Clear(uuid, slot, daily.Seed(), s) } if err != nil { httpError(w, r, err, http.StatusInternalServerError)