package brass

import (
	"encoding/json"
	"fmt"
	"net/http"
)

func getParams(r *http.Request) (map[string]string, error) {
	res := map[string]string{}
	if r.Header.Get("Content-Type") == "application/x-www-form-urlencoded" {
		err := r.ParseForm()
		if err != nil {
			return nil, err
		}
		for k, v := range r.Form {
			if len(v) != 1 {
				return nil, fmt.Errorf("key %s has %d values", k, len(v))
			}
			res[k] = v[0]
		}
		return res, nil
	}
	err := json.NewDecoder(r.Body).Decode(&res)
	if err != nil {
		return nil, err
	}
	return res, nil
}
