madon.go
author Mikael Berthe <mikael@lilotux.net>
Sat, 29 Apr 2017 17:27:15 +0200
changeset 156 70aadba26338
parent 154 eb83fd052cc5
child 157 6e9d927d5e32
permissions -rw-r--r--
Add field "All" to LimitParams, change Limit behaviour If All is true, the library will send several requests (if needed) until the API server has sent all the results. If not, and if a Limit is set, the library will try to fetch at least this number of results.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
130
c450bb73f59a Update credits
Mikael Berthe <mikael@lilotux.net>
parents: 125
diff changeset
     1
/*
c450bb73f59a Update credits
Mikael Berthe <mikael@lilotux.net>
parents: 125
diff changeset
     2
Copyright 2017 Ollivier Robert
c450bb73f59a Update credits
Mikael Berthe <mikael@lilotux.net>
parents: 125
diff changeset
     3
Copyright 2017 Mikael Berthe
c450bb73f59a Update credits
Mikael Berthe <mikael@lilotux.net>
parents: 125
diff changeset
     4
c450bb73f59a Update credits
Mikael Berthe <mikael@lilotux.net>
parents: 125
diff changeset
     5
Licensed under the MIT license.  Please see the LICENSE file is this directory.
c450bb73f59a Update credits
Mikael Berthe <mikael@lilotux.net>
parents: 125
diff changeset
     6
*/
c450bb73f59a Update credits
Mikael Berthe <mikael@lilotux.net>
parents: 125
diff changeset
     7
138
23d3a518d0ad Update package name in source files
Mikael Berthe <mikael@lilotux.net>
parents: 131
diff changeset
     8
package madon
7
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
     9
21
555716349f64 Move App stuff into app.go.
Ollivier Robert <roberto@keltia.net>
parents: 13
diff changeset
    10
import (
83
adc39ae774c0 Make it work with non-defaut instances
Mikael Berthe <mikael@lilotux.net>
parents: 77
diff changeset
    11
	"errors"
21
555716349f64 Move App stuff into app.go.
Ollivier Robert <roberto@keltia.net>
parents: 13
diff changeset
    12
)
7
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
    13
149
5f922977d7c7 Add support for limits and paging ({since,max}_id) API parameters
Mikael Berthe <mikael@lilotux.net>
parents: 145
diff changeset
    14
// LimitParams contains common limit/paging options for the Mastodon REST API
5f922977d7c7 Add support for limits and paging ({since,max}_id) API parameters
Mikael Berthe <mikael@lilotux.net>
parents: 145
diff changeset
    15
type LimitParams struct {
156
70aadba26338 Add field "All" to LimitParams, change Limit behaviour
Mikael Berthe <mikael@lilotux.net>
parents: 154
diff changeset
    16
	Limit          int  // Number of items per query
70aadba26338 Add field "All" to LimitParams, change Limit behaviour
Mikael Berthe <mikael@lilotux.net>
parents: 154
diff changeset
    17
	SinceID, MaxID int  // Boundaries
70aadba26338 Add field "All" to LimitParams, change Limit behaviour
Mikael Berthe <mikael@lilotux.net>
parents: 154
diff changeset
    18
	All            bool // Get as many items as possible
149
5f922977d7c7 Add support for limits and paging ({since,max}_id) API parameters
Mikael Berthe <mikael@lilotux.net>
parents: 145
diff changeset
    19
}
5f922977d7c7 Add support for limits and paging ({since,max}_id) API parameters
Mikael Berthe <mikael@lilotux.net>
parents: 145
diff changeset
    20
120
579912e9d0ef Refactor API calls
Mikael Berthe <mikael@lilotux.net>
parents: 107
diff changeset
    21
// apiCallParams is a map with the parameters for an API call
579912e9d0ef Refactor API calls
Mikael Berthe <mikael@lilotux.net>
parents: 107
diff changeset
    22
type apiCallParams map[string]string
579912e9d0ef Refactor API calls
Mikael Berthe <mikael@lilotux.net>
parents: 107
diff changeset
    23
7
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
    24
const (
138
23d3a518d0ad Update package name in source files
Mikael Berthe <mikael@lilotux.net>
parents: 131
diff changeset
    25
	// MadonVersion contains the version of the Madon library
154
eb83fd052cc5 Bump version number -- devel version
Mikael Berthe <mikael@lilotux.net>
parents: 153
diff changeset
    26
	MadonVersion = "1.2.0-dev"
12
4f58e9f1e2bc Add APIEndpoint. Fill in Gondole variable.
Ollivier Robert <roberto@keltia.net>
parents: 7
diff changeset
    27
131
68ef6504637e Introduce RestoreApp(), bump library version
Mikael Berthe <mikael@lilotux.net>
parents: 130
diff changeset
    28
	// API version implemented in this library
68ef6504637e Introduce RestoreApp(), bump library version
Mikael Berthe <mikael@lilotux.net>
parents: 130
diff changeset
    29
	apiVersion     = "v1"
68ef6504637e Introduce RestoreApp(), bump library version
Mikael Berthe <mikael@lilotux.net>
parents: 130
diff changeset
    30
	currentAPIPath = "/api/" + apiVersion
77
603dd20de7e1 Use site part of the endpoint but fix "/api/v1". Use FallBack if necessary.
Ollivier Robert <roberto@keltia.net>
parents: 67
diff changeset
    31
83
adc39ae774c0 Make it work with non-defaut instances
Mikael Berthe <mikael@lilotux.net>
parents: 77
diff changeset
    32
	// NoRedirect is the URI for no redirection in the App registration
21
555716349f64 Move App stuff into app.go.
Ollivier Robert <roberto@keltia.net>
parents: 13
diff changeset
    33
	NoRedirect = "urn:ietf:wg:oauth:2.0:oob"
7
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
    34
)
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
    35
99
6ec2a44a1bd1 Return error rather than empty entities
Mikael Berthe <mikael@lilotux.net>
parents: 89
diff changeset
    36
// Error codes
33
bce8b17415ae Add new error ErrAlreadyRegistered.
Ollivier Robert <roberto@keltia.net>
parents: 26
diff changeset
    37
var (
138
23d3a518d0ad Update package name in source files
Mikael Berthe <mikael@lilotux.net>
parents: 131
diff changeset
    38
	ErrUninitializedClient = errors.New("use of uninitialized madon client")
23d3a518d0ad Update package name in source files
Mikael Berthe <mikael@lilotux.net>
parents: 131
diff changeset
    39
	ErrAlreadyRegistered   = errors.New("app already registered")
23d3a518d0ad Update package name in source files
Mikael Berthe <mikael@lilotux.net>
parents: 131
diff changeset
    40
	ErrEntityNotFound      = errors.New("entity not found")
23d3a518d0ad Update package name in source files
Mikael Berthe <mikael@lilotux.net>
parents: 131
diff changeset
    41
	ErrInvalidParameter    = errors.New("incorrect parameter")
23d3a518d0ad Update package name in source files
Mikael Berthe <mikael@lilotux.net>
parents: 131
diff changeset
    42
	ErrInvalidID           = errors.New("incorrect entity ID")
33
bce8b17415ae Add new error ErrAlreadyRegistered.
Ollivier Robert <roberto@keltia.net>
parents: 26
diff changeset
    43
)