package http import ( "context" "io/ioutil" "net/http" "git.grassecon.net/grassrootseconomics/visedriver/errors" ) type DefaultRequestParser struct { } func (rp *DefaultRequestParser) GetSessionId(ctx context.Context, rq any) (string, error) { rqv, ok := rq.(*http.Request) if !ok { return "", errors.ErrInvalidRequest } v := rqv.Header.Get("X-Vise-Session") if v == "" { return "", errors.ErrSessionMissing } return v, nil } func (rp *DefaultRequestParser) GetInput(rq any) ([]byte, error) { rqv, ok := rq.(*http.Request) if !ok { return nil, errors.ErrInvalidRequest } defer rqv.Body.Close() v, err := ioutil.ReadAll(rqv.Body) if err != nil { return nil, err } return v, nil }