2020-03-23 07:01:59 +01:00
|
|
|
package http
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
|
|
|
|
"github.com/gorilla/schema"
|
|
|
|
|
2022-04-27 01:01:45 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/errors"
|
2020-03-23 07:01:59 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
type Parser struct {
|
|
|
|
decoder *schema.Decoder
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewParser() *Parser {
|
|
|
|
d := schema.NewDecoder()
|
|
|
|
d.IgnoreUnknownKeys(true)
|
|
|
|
return &Parser{d}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (p *Parser) Parse(r *http.Request, data interface{}) error {
|
|
|
|
err := r.ParseForm()
|
|
|
|
if err != nil {
|
|
|
|
return errors.ThrowInternal(err, "FORM-lCC9zI", "error parsing http form")
|
|
|
|
}
|
|
|
|
|
|
|
|
return p.decoder.Decode(data, r.Form)
|
|
|
|
}
|