Change the way parameter lists are handled internally
Instead of trying to guess if a query key is a list (to strip the index
number, since Rails expects list IDs without index number), we prefix
the key name with the index when dealing with lists.
E.g.:
[0]ids: "one"
[1]ids: "two"
will be sent as
ids[]=one&ids[]=two
It makes it more reliable and let us differenciate between arrays and
objects (objects are untouched and sent as-is).
/*
Copyright 2017-2018 Mikael Berthe
Copyright 2017 Ollivier Robert
Licensed under the MIT license. Please see the LICENSE file is this directory.
*/
package madon
import (
"github.com/pkg/errors"
)
// LimitParams contains common limit/paging options for the Mastodon REST API
type LimitParams struct {
Limit int // Number of items per query
SinceID, MaxID int64 // Boundaries
All bool // Get as many items as possible
}
// apiCallParams is a map with the parameters for an API call
type apiCallParams map[string]string
const (
// MadonVersion contains the version of the Madon library
MadonVersion = "2.4.0-dev"
currentAPIPath = "/api"
// NoRedirect is the URI for no redirection in the App registration
NoRedirect = "urn:ietf:wg:oauth:2.0:oob"
)
// Error codes
var (
ErrUninitializedClient = errors.New("use of uninitialized madon client")
ErrAlreadyRegistered = errors.New("app already registered")
ErrEntityNotFound = errors.New("entity not found")
ErrInvalidParameter = errors.New("incorrect parameter")
ErrInvalidID = errors.New("incorrect entity ID")
)