fix error on omited parameters, improve decoding errors

This commit is contained in:
Samuel Lorch 2023-03-11 17:41:41 +01:00
parent 2fe21169bb
commit f9b3a358dd

View file

@ -46,7 +46,7 @@ func (h *Handler) HandleRequest(ctx context.Context, s *session.Session, r io.Re
dec.DisallowUnknownFields() dec.DisallowUnknownFields()
err = dec.Decode(&req) err = dec.Decode(&req)
if err != nil { if err != nil {
return respondError(w, "", ErrParse, fmt.Errorf("Parsing Request: %w", err)) return respondError(w, "", ErrParse, fmt.Errorf("Decodeing Request: %w", err))
} }
if req.Jsonrpc != "2.0" { if req.Jsonrpc != "2.0" {
@ -65,11 +65,13 @@ func (h *Handler) HandleRequest(ctx context.Context, s *session.Session, r io.Re
p := reflect.New(method.inType) p := reflect.New(method.inType)
paramPointer := p.Interface() paramPointer := p.Interface()
dec = json.NewDecoder(bytes.NewReader(req.Params)) if len(req.Params) != 0 {
dec.DisallowUnknownFields() dec = json.NewDecoder(bytes.NewReader(req.Params))
err = dec.Decode(paramPointer) dec.DisallowUnknownFields()
if err != nil { err = dec.Decode(paramPointer)
return respondError(w, req.ID, ErrInvalidParams, fmt.Errorf("Parsing Request: %w", err)) if err != nil {
return respondError(w, req.ID, ErrInvalidParams, fmt.Errorf("Decoding Parameters: %w", err))
}
} }
params := make([]reflect.Value, 3) params := make([]reflect.Value, 3)