From 1091d9be0216c352069830308fe5c53205193557 Mon Sep 17 00:00:00 2001 From: irlndts Date: Tue, 13 Mar 2018 00:12:06 +0300 Subject: [PATCH] DSCGS-11 Improve SearchService --- .discogs.go.swp | Bin 12288 -> 12288 bytes .search.go.swp | Bin 0 -> 12288 bytes discogs.go | 3 +- .../.discogs_example.go.swp | Bin 16384 -> 12288 bytes examples/discogs_example.go | 5 ++- search.go | 38 ++++++++---------- 6 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 .search.go.swp rename .models.go.swp => examples/.discogs_example.go.swp (64%) diff --git a/.discogs.go.swp b/.discogs.go.swp index 175473ddd4c9d921175b96fa88addcb9c246ce8e..9d2f48df31c1ff4b65e21f2ec2a253394e4a09bb 100644 GIT binary patch delta 297 zcmZojXh@JsG6?hZRj|-AU;qLE28LsAmPP55N;34AZj}1Q&zQAYP~bB^FBdBV!#OsH z3ZRezKVy9=7Xw2q5Jv-X6cDQd@ik5chQ&Z!3BU+~f#E3--v;8DKs*hI zrvUL}Aoc-bZXo`}&cN^%h+hHmH6XqU#Jhob4iI+(aUBp>192P>$FeghGZ+FH3P3Cj z!~#J473jV%Kzsp+L2f7#x8N10Yrg zVg(?U2jbsAH-g;xWAi~pUe<{R^e3NF)7UJiUck(ilvtdq=a*Wpp}BdsRw^q1yY(>s diff --git a/.search.go.swp b/.search.go.swp new file mode 100644 index 0000000000000000000000000000000000000000..e99411de3ba113a1c9ae4953c6905ae3646623db GIT binary patch literal 12288 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 IMz(?UZ=xJYyZ`_I diff --git a/examples/discogs_example.go b/examples/discogs_example.go index aef3fb0..b5359ef 100644 --- a/examples/discogs_example.go +++ b/examples/discogs_example.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "net/url" "github.com/irlndts/go-discogs" ) @@ -17,7 +18,9 @@ func main() { return } - release, err := d.Master.Versions(1147170, nil) + params := url.Values{} + params.Set("q", "Ska-Jazz Review") + release, err := d.Search.Search(params) if err != nil { fmt.Println(err) return diff --git a/search.go b/search.go index 6485540..4249429 100644 --- a/search.go +++ b/search.go @@ -1,17 +1,19 @@ package discogs -import ( - "net/http" - - "github.com/irlndts/go-apirequest" -) +import "net/url" // SearchService ... type SearchService struct { - api *apirequest.API + url string } -// SerachRequest describes search request json +func newSearchService(url string) *SearchService { + return &SearchService{ + url: url, + } +} + +// SerachRequest describes search request type SearchRequest struct { Q string // search query (optional) Type string // one of release, master, artist, label (optional) @@ -32,8 +34,8 @@ type SearchRequest struct { Submitter string // search submitter username (optional) Contributer string // search contributor usernames (optional) - Page int // optional - Per_page int // optional + Page int // optional + PerPage int // optional } // Search describes search response @@ -60,20 +62,14 @@ type Result struct { ID int `json:"id,omitempty"` } -func newSearchService(api *apirequest.API) *SearchService { - return &SearchService{ - api: api.Path("database/search"), - } -} - // Search makes search request to discogs. // Issue a search query to our database. This endpoint accepts pagination parameters. // Authentication (as any user) is required. // https://www.discogs.com/developers/#page:database,header:database-search -func (self *SearchService) Search(params *SearchRequest) (*Search, *http.Response, error) { - search := new(Search) - apiError := new(APIError) - - resp, err := self.api.New().QueryStruct(params).Receive(search, apiError) - return search, resp, relevantError(err, *apiError) +func (s *SearchService) Search(params url.Values) (*Search, error) { + var search *Search + if err := request(s.url, params, &search); err != nil { + return nil, err + } + return search, nil }