diff --git a/model/alert.go b/model/alert.go index 164455c..effd6c5 100644 --- a/model/alert.go +++ b/model/alert.go @@ -40,5 +40,5 @@ func (q *Model) Alert(builder *django.Builder) ([]*Alert, error) { func (a *Alert) Save() (*internal.Status, error) { endpoint := a.model.endpoint("alert") - return internal.ResponseStatus(endpoint, Values(a)) + return internal.ResponseStatus(endpoint, a.model.Values(a)) } diff --git a/model/application.go b/model/application.go index e96e942..0fb13f0 100644 --- a/model/application.go +++ b/model/application.go @@ -45,5 +45,5 @@ func (q *Model) Application(builder *django.Builder) ([]*Application, error) { func (a *Application) Save() (*internal.Status, error) { endpoint := a.model.endpoint("application") - return internal.ResponseStatus(endpoint, Values(a)) + return internal.ResponseStatus(endpoint, a.model.Values(a)) } diff --git a/model/ip.go b/model/ip.go index cf1ac83..1acf6fc 100644 --- a/model/ip.go +++ b/model/ip.go @@ -38,5 +38,5 @@ func (q *Model) IP(builder *django.Builder) ([]*IP, error) { func (i *IP) Save() (*internal.Status, error) { endpoint := i.model.endpoint("ip") - return internal.ResponseStatus(endpoint, Values(i)) + return internal.ResponseStatus(endpoint, i.model.Values(i)) } diff --git a/model/model.go b/model/model.go index e4a2e60..6783054 100644 --- a/model/model.go +++ b/model/model.go @@ -25,7 +25,7 @@ func (q *Model) NewDjangoBuilder() *django.Builder { } func (q *Model) endpoint(model string) string { - return fmt.Sprintf("%s/%s", q.URL, model) + return fmt.Sprintf("%s/%s/", q.URL, model) } func (q *Model) queryEndpoint(model, query string) string { @@ -35,12 +35,25 @@ func (q *Model) queryEndpoint(model, query string) string { return fmt.Sprintf("%s%s", q.endpoint(model), query) } -func Values(i interface{}) url.Values { +func (q *Model) Values(i interface{}) url.Values { values := url.Values{} + values.Set("api", q.Token) 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))) + values.Set(strings.ToLower(typ.Field(i).Tag.Get("json")), PyConvert(iVal.Field(i))) } return values } + +func PyConvert(value reflect.Value) string { + switch value.Kind() { + case reflect.Bool: + if fmt.Sprint(value) == "true" { + return "True" + } + return "False" + default: + return fmt.Sprint(value) + } +} diff --git a/model/note.go b/model/note.go index b9542c5..0f6850f 100644 --- a/model/note.go +++ b/model/note.go @@ -49,5 +49,5 @@ func (q *Model) Note(builder *django.Builder) ([]*Note, error) { func (n *Note) Save() (*internal.Status, error) { endpoint := n.model.endpoint("note") - return internal.ResponseStatus(endpoint, Values(n)) + return internal.ResponseStatus(endpoint, n.model.Values(n)) } diff --git a/model/player.go b/model/player.go index 6bdf9cc..93bba99 100644 --- a/model/player.go +++ b/model/player.go @@ -42,5 +42,5 @@ func (q *Model) Player(builder *django.Builder) ([]*Player, error) { func (p *Player) Save() (*internal.Status, error) { endpoint := p.model.endpoint("player") - return internal.ResponseStatus(endpoint, Values(p)) + return internal.ResponseStatus(endpoint, p.model.Values(p)) } diff --git a/model/ticket.go b/model/ticket.go index 9d721ed..39d6558 100644 --- a/model/ticket.go +++ b/model/ticket.go @@ -62,5 +62,5 @@ func (q *Model) Ticket(builder *django.Builder) ([]*Ticket, error) { func (t *Ticket) Save() (*internal.Status, error) { endpoint := t.model.endpoint("ticket") - return internal.ResponseStatus(endpoint, Values(t)) + return internal.ResponseStatus(endpoint, t.model.Values(t)) } diff --git a/model/ticketnote.go b/model/ticketnote.go index e624b2c..6872255 100644 --- a/model/ticketnote.go +++ b/model/ticketnote.go @@ -41,5 +41,5 @@ func (q *Model) TicketNote(builder *django.Builder) ([]*TicketNote, error) { func (t *TicketNote) Save() (*internal.Status, error) { endpoint := t.model.endpoint("ticketnote") - return internal.ResponseStatus(endpoint, Values(t)) + return internal.ResponseStatus(endpoint, t.model.Values(t)) } diff --git a/model/usersettings.go b/model/usersettings.go index 93d30a0..b9bef3a 100644 --- a/model/usersettings.go +++ b/model/usersettings.go @@ -62,5 +62,5 @@ func (q *Model) UserSettings(builder *django.Builder) ([]*UserSettings, error) { func (u *UserSettings) Save() (*internal.Status, error) { endpoint := u.model.endpoint("usersettings") - return internal.ResponseStatus(endpoint, Values(u)) + return internal.ResponseStatus(endpoint, u.model.Values(u)) }