diff --git a/internal/http/server.go b/internal/http/server.go index eef41c9..040c035 100644 --- a/internal/http/server.go +++ b/internal/http/server.go @@ -2,8 +2,8 @@ package http import ( "fmt" - "io/ioutil" "net/http" + "strings" "git.defalsify.org/vise.git/db" "git.defalsify.org/vise.git/engine" @@ -25,20 +25,31 @@ type DefaultRequestParser struct { } func(rp *DefaultRequestParser) GetSessionId(rq *http.Request) (string, error) { - v := rq.Header.Get("X-Vise-Session") - if v == "" { - return "", fmt.Errorf("no session found") + if err := rq.ParseForm(); err != nil { + return "", fmt.Errorf("failed to parse form data: %v", err) } - return v, nil + + phoneNumber := rq.FormValue("phoneNumber") + if phoneNumber == "" { + return "", fmt.Errorf("no phone number found") + } + + return phoneNumber, nil } func(rp *DefaultRequestParser) GetInput(rq *http.Request) ([]byte, error) { - defer rq.Body.Close() - v, err := ioutil.ReadAll(rq.Body) - if err != nil { - return nil, err + if err := rq.ParseForm(); err != nil { + return nil, fmt.Errorf("failed to parse form data: %v", err) } - return v, nil + + text := rq.FormValue("text") + + parts := strings.Split(text, "*") + if len(parts) == 0 { + return nil, fmt.Errorf("no input found") + } + + return []byte(parts[len(parts)-1]), nil } type SessionHandler struct {