Initial commit
This commit is contained in:
60
vendor/gopkg.in/masci/flickr.v3/flickr.go
generated
vendored
Normal file
60
vendor/gopkg.in/masci/flickr.v3/flickr.go
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
// Flickr.go is a Go library for accessing Flickr API https://www.flickr.com/services/api
|
||||
package flickr
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"mime/multipart"
|
||||
)
|
||||
|
||||
const (
|
||||
API_ENDPOINT = "https://api.flickr.com/services/rest"
|
||||
UPLOAD_ENDPOINT = "https://up.flickr.com/services/upload/"
|
||||
AUTHORIZE_URL = "https://www.flickr.com/services/oauth/authorize"
|
||||
REQUEST_TOKEN_URL = "https://www.flickr.com/services/oauth/request_token"
|
||||
ACCESS_TOKEN_URL = "https://www.flickr.com/services/oauth/access_token"
|
||||
)
|
||||
|
||||
// Perform a GET request to the Flickr API with the configured FlickrClient passed as first
|
||||
// parameter. Results will be unmarshalled to fill in a FlickrResponse struct passed as
|
||||
// second parameter.
|
||||
func DoGet(client *FlickrClient, r FlickrResponse) error {
|
||||
res, err := client.HTTPClient.Get(client.GetUrl())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return parseApiResponse(res, r)
|
||||
}
|
||||
|
||||
// Perform a POST request to the Flickr API with the configured FlickrClient, the
|
||||
// request body and the body content type. Results will be unmarshalled in a FlickrResponse
|
||||
// struct.
|
||||
func DoPostBody(client *FlickrClient, body *bytes.Buffer, bodyType string, r FlickrResponse) error {
|
||||
res, err := client.HTTPClient.Post(client.EndpointUrl, bodyType, body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return parseApiResponse(res, r)
|
||||
}
|
||||
|
||||
// Perform a POST request to the Flickr API with the configured FlickrClient,
|
||||
// dumping client Args into the request Body.
|
||||
func DoPost(client *FlickrClient, r FlickrResponse) error {
|
||||
// instance an empty request body
|
||||
body := &bytes.Buffer{}
|
||||
// multipart writer to fill the body
|
||||
writer := multipart.NewWriter(body)
|
||||
// dump params
|
||||
for key, val := range client.Args {
|
||||
_ = writer.WriteField(key, val[0])
|
||||
}
|
||||
err := writer.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// evaluate the content type and the boundary
|
||||
contentType := writer.FormDataContentType()
|
||||
|
||||
return DoPostBody(client, body, contentType, r)
|
||||
}
|
||||
Reference in New Issue
Block a user