From b103736a9d4e4fe87bb574ae1cf516e5ce53d610 Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 29 Jul 2025 16:41:45 +0300 Subject: [PATCH] add resolveMethodPath to resolve giving methods --- internal/server/sv1/path.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 internal/server/sv1/path.go diff --git a/internal/server/sv1/path.go b/internal/server/sv1/path.go new file mode 100644 index 0000000..e4dc4b8 --- /dev/null +++ b/internal/server/sv1/path.go @@ -0,0 +1,26 @@ +package sv1 + +import ( + "errors" + "os" + "path/filepath" + "strings" + + "github.com/akyaiy/GoSally-mvp/internal/server/rpc" +) + +func (h *HandlerV1) resolveMethodPath(method string) (string, error) { + if !h.allowedCmd.MatchString(method) { + return "", errors.New(rpc.ErrInvalidMethodFormatS) + } + + parts := strings.Split(method, ">") + relPath := filepath.Join(parts...) + ".lua" + fullPath := filepath.Join(h.cfg.ComDir, relPath) + + if _, err := os.Stat(fullPath); os.IsNotExist(err) { + return "", errors.New(rpc.ErrMethodNotFoundS) + } + + return fullPath, nil +}