Minor improvements

This commit is contained in:
irlndts 2020-03-24 13:08:35 +03:00
parent 417d6d51e6
commit bcf5c89215
4 changed files with 21 additions and 16 deletions

View File

@ -4,6 +4,8 @@
go-discogs is a Go client library for the [Discogs API](https://www.discogs.com/developers/). Check the usage section to see how to access the Discogs API.
The lib is under MIT but be sure you are familiar with [Discogs API Terms of Use](https://support.discogs.com/hc/en-us/articles/360009334593-API-Terms-of-Use).
### Feauteres
* Database
* [Releases](#releases)
@ -31,10 +33,11 @@ import "github.com/irlndts/go-discogs"
Some requests require authentification (as any user). According to [Discogs](https://www.discogs.com/developers/#page:authentication,header:authentication-discogs-auth-flow), to send requests with Discogs Auth, you have two options: sending your credentials in the query string with key and secret parameters or a [token parameter](https://www.discogs.com/settings/developers).
This is token way example:
```go
client, err := discogs.NewClient(&discogs.Options{
client, err := discogs.New(&discogs.Options{
UserAgent: "Some Name",
Currency: "EUR", // optional, "USD" (default), "GBP", "EUR", "CAD", "AUD", "JPY", "CHF", "MXN", "BRL", "NZD", "SEK", "ZAR" are allowed
Token: "Some Token", // optional
URL: "https://api.discogs.com", // optional
})
```
@ -85,5 +88,3 @@ Example
fmt.Println(r.Title)
}
```
etc.

View File

@ -14,22 +14,26 @@ const (
// Options is a set of options to use discogs API client
type Options struct {
URL string
Currency string
// Discogs API endpoint (optional).
URL string
// Currency to use (optional, default is USD).
Currency string
// UserAgent to to call discogs api with.
UserAgent string
Token string
// Token provided by discogs (optional).
Token string
}
// Client is a Discogs client for making Discogs API requests.
type Client struct {
// Discogs is a Discogs' client for making Discogs API requests.
type Discogs struct {
Database *DatabaseService
Search *SearchService
}
var header *http.Header
// NewClient returns a new Client.
func NewClient(o *Options) (*Client, error) {
// New returns a new discogs API client.
func New(o *Options) (*Discogs, error) {
header = &http.Header{}
if o == nil || o.UserAgent == "" {
@ -52,7 +56,7 @@ func NewClient(o *Options) (*Client, error) {
o.URL = discogsAPI
}
return &Client{
return &Discogs{
Database: newDatabaseService(o.URL, cur),
Search: newSearchService(o.URL + "/database/search"),
}, nil

View File

@ -9,7 +9,7 @@ const (
testToken = ""
)
func initDiscogsClient(t *testing.T, options *Options) *Client {
func initDiscogsClient(t *testing.T, options *Options) *Discogs {
if options == nil {
options = &Options{
UserAgent: testUserAgent,
@ -22,7 +22,7 @@ func initDiscogsClient(t *testing.T, options *Options) *Client {
options.UserAgent = testUserAgent
}
client, err := NewClient(options)
client, err := New(options)
if err != nil {
t.Fatalf("failed to create client: %s", err)
}
@ -30,7 +30,7 @@ func initDiscogsClient(t *testing.T, options *Options) *Client {
return client
}
func TestNewClient(t *testing.T) {
func TestNew(t *testing.T) {
tests := map[string]struct {
options *Options
err error
@ -53,7 +53,7 @@ func TestNewClient(t *testing.T) {
for name := range tests {
tt := tests[name]
t.Run(name, func(t *testing.T) {
if _, err := NewClient(tt.options); err != tt.err {
if _, err := New(tt.options); err != tt.err {
t.Errorf("err got=%s; want=%s", err, tt.err)
}
})

View File

@ -7,7 +7,7 @@ import (
)
func main() {
d, err := discogs.NewClient(&discogs.Options{
d, err := discogs.New(&discogs.Options{
UserAgent: "TestDiscogsClient/0.0.1 +http://example.com",
Currency: "USD",
Token: "",