set urn:ietf:wg:oauth:2.0:oob if RedirectURIs is not set

pull/7/head
Yasuhiro Matsumoto 2017-04-14 18:19:12 +09:00
parent 4a9d0067e2
commit 44a8f8e593
1 changed files with 15 additions and 6 deletions

View File

@ -48,7 +48,7 @@ func (c *Client) doAPI(method string, uri string, params url.Values, res interfa
return nil return nil
} }
if method == "GET" && resp.StatusCode != 200 { if method == "GET" && resp.StatusCode != http.StatusOK {
return fmt.Errorf("bad request: %v", resp.Status) return fmt.Errorf("bad request: %v", resp.Status)
} }
@ -90,7 +90,7 @@ func (c *Client) Authenticate(username, password string) error {
} }
defer resp.Body.Close() defer resp.Body.Close()
if resp.StatusCode != 200 { if resp.StatusCode != http.StatusOK {
return fmt.Errorf("bad authorization: %v", resp.Status) return fmt.Errorf("bad authorization: %v", resp.Status)
} }
@ -133,7 +133,11 @@ type Application struct {
func RegisterApp(appConfig *AppConfig) (*Application, error) { func RegisterApp(appConfig *AppConfig) (*Application, error) {
params := url.Values{} params := url.Values{}
params.Set("client_name", appConfig.ClientName) params.Set("client_name", appConfig.ClientName)
if appConfig.RedirectURIs == "" {
params.Set("redirect_uris", "urn:ietf:wg:oauth:2.0:oob")
} else {
params.Set("redirect_uris", appConfig.RedirectURIs) params.Set("redirect_uris", appConfig.RedirectURIs)
}
params.Set("scopes", appConfig.Scopes) params.Set("scopes", appConfig.Scopes)
params.Set("website", appConfig.Website) params.Set("website", appConfig.Website)
@ -147,19 +151,24 @@ func RegisterApp(appConfig *AppConfig) (*Application, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
resp, err := appConfig.Do(req) resp, err := appConfig.Do(req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer resp.Body.Close() defer resp.Body.Close()
app := &Application{} if resp.StatusCode != http.StatusOK {
err = json.NewDecoder(resp.Body).Decode(app) return nil, fmt.Errorf("bad request: %v", resp.Status)
}
var app Application
err = json.NewDecoder(resp.Body).Decode(&app)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return app, nil return &app, nil
} }
// Account hold information for mastodon account. // Account hold information for mastodon account.