package model import ( "fmt" "go.etztech.xyz/go-mcm/model/django" "net/url" "reflect" "strings" ) type Model struct { Token string URL string } func NewModel(token, baseURL string) *Model { return &Model{ Token: token, URL: fmt.Sprintf("%s/model", strings.TrimRight(baseURL, "/")), } } func (q *Model) NewDjangoBuilder() *django.Builder { return django.NewBuilder(q.Token) } func (q *Model) endpoint(model string) string { return fmt.Sprintf("%s/%s", q.URL, model) } func (q *Model) queryEndpoint(model, query string) string { if !strings.HasPrefix(query, "?") { query = "?" + query } return fmt.Sprintf("%s%s", q.endpoint(model), query) } func Values(i interface{}) url.Values { values := url.Values{} iVal := reflect.ValueOf(i).Elem() typ := iVal.Type() for i := 0; i < iVal.NumField(); i++ { values.Set(strings.ToLower(typ.Field(i).Name), fmt.Sprint(iVal.Field(i))) } return values }