forked from openshift/origin
/
custom.go
48 lines (40 loc) · 945 Bytes
/
custom.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package osincli
import (
"net/url"
)
// Custom request information
type CustomRequest struct {
client *Client
CustomParameters map[string]string
}
// Custom data
type CustomData struct {
ResponseData ResponseData
}
func (c *Client) NewCustomRequest() *CustomRequest {
return &CustomRequest{
client: c,
}
}
// Send a custom request
// On OAuth2 error, and osincli.Error is returned as error
func (c *CustomRequest) GetRequest(url *url.URL) (*CustomData, error) {
var ba *BasicAuth
if !c.client.config.SendClientSecretInParams {
ba = &BasicAuth{Username: c.client.config.ClientId, Password: c.client.config.ClientSecret}
}
// return value
ret := &CustomData{
ResponseData: make(ResponseData),
}
// download data
m := "POST"
if c.client.config.UseGetAccessRequest {
m = "GET"
}
err := downloadData(m, url, ba, c.client.Transport, ret.ResponseData)
if err != nil {
return nil, err
}
return ret, nil
}