From fa43a46aa51f5ba18a4b2dd21f78ef9b0ef9db79 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 14 Apr 2017 23:45:03 +0900 Subject: [PATCH] separate files --- mastodon.go | 66 ----------------------------------------------------- 1 file changed, 66 deletions(-) diff --git a/mastodon.go b/mastodon.go index 3b6f246..1cb4cac 100644 --- a/mastodon.go +++ b/mastodon.go @@ -103,72 +103,6 @@ func (c *Client) Authenticate(username, password string) error { return nil } -// AppConfig is a setting for registering applications. -type AppConfig struct { - http.Client - Server string - ClientName string - - // Where the user should be redirected after authorization (for no redirect, use urn:ietf:wg:oauth:2.0:oob) - RedirectURIs string - - // This can be a space-separated list of the following items: "read", "write" and "follow". - Scopes string - - // Optional. - Website string -} - -// Application is mastodon application. -type Application struct { - ID int64 `json:"id"` - RedirectURI string `json:"redirect_uri"` - ClientID string `json:"client_id"` - ClientSecret string `json:"client_secret"` -} - -// RegisterApp returns the mastodon application. -func RegisterApp(appConfig *AppConfig) (*Application, error) { - params := url.Values{} - 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("scopes", appConfig.Scopes) - params.Set("website", appConfig.Website) - - url, err := url.Parse(appConfig.Server) - if err != nil { - return nil, err - } - url.Path = path.Join(url.Path, "/api/v1/apps") - - req, err := http.NewRequest("POST", url.String(), strings.NewReader(params.Encode())) - if err != nil { - return nil, err - } - req.Header.Set("Content-Type", "application/x-www-form-urlencoded") - resp, err := appConfig.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("bad request: %v", resp.Status) - } - - var app Application - err = json.NewDecoder(resp.Body).Decode(&app) - if err != nil { - return nil, err - } - - return &app, nil -} - // Toot is struct to post status. type Toot struct { Status string `json:"status"`