summaryrefslogtreecommitdiff
path: root/pkg/mastotypes/application.go
diff options
context:
space:
mode:
authorLibravatar tsmethurst <tobi.smethurst@klarrio.com>2021-03-18 23:54:07 +0100
committerLibravatar tsmethurst <tobi.smethurst@klarrio.com>2021-03-18 23:54:07 +0100
commit95faebe60dfcb1ba62a81932e14e876ea9993cd7 (patch)
tree5d82ce63fa31257b2736c39da0fbeb74b8772ada /pkg/mastotypes/application.go
parentauth flow working for code (diff)
downloadgotosocial-95faebe60dfcb1ba62a81932e14e876ea9993cd7.tar.xz
extend application for use in oauth
Diffstat (limited to 'pkg/mastotypes/application.go')
-rw-r--r--pkg/mastotypes/application.go30
1 files changed, 28 insertions, 2 deletions
diff --git a/pkg/mastotypes/application.go b/pkg/mastotypes/application.go
index d2f894306..88128f71d 100644
--- a/pkg/mastotypes/application.go
+++ b/pkg/mastotypes/application.go
@@ -18,12 +18,38 @@
package mastotypes
-// Application represents a mastodon-api Application, as defined here: https://docs.joinmastodon.org/entities/application/
+// Application represents a mastodon-api Application, as defined here: https://docs.joinmastodon.org/entities/application/.
+// Primarily, application is used for allowing apps like Tusky etc to connect to Mastodon on behalf of a user.
+// See https://docs.joinmastodon.org/methods/apps/
type Application struct {
+ // The application ID in the db
+ ID string `json:"id,omitempty"`
// The name of your application.
Name string `json:"name"`
// The website associated with your application (url)
- Website string `json:"website"`
+ Website string `json:"website,omitempty"`
+ // Where the user should be redirected after authorization.
+ RedirectURI string `json:"redirect_uri,omitempty"`
+ // ClientID to use when obtaining an oauth token for this application (ie., in client_id parameter of https://docs.joinmastodon.org/methods/apps/)
+ ClientID string `json:"client_id,omitempty"`
+ // Client secret to use when obtaining an auth token for this application (ie., in client_secret parameter of https://docs.joinmastodon.org/methods/apps/)
+ ClientSecret string `json:"client_secret,omitempty"`
// Used for Push Streaming API. Returned with POST /api/v1/apps. Equivalent to https://docs.joinmastodon.org/entities/pushsubscription/#server_key
VapidKey string `json:"vapid_key"`
}
+
+// ApplicationPOSTRequest represents a POST request to https://example.org/api/v1/apps.
+// See here: https://docs.joinmastodon.org/methods/apps/
+// And here: https://docs.joinmastodon.org/client/token/
+type ApplicationPOSTRequest struct {
+ // A name for your application
+ ClientName string `form:"client_name"`
+ // Where the user should be redirected after authorization.
+ // To display the authorization code to the user instead of redirecting
+ // to a web page, use urn:ietf:wg:oauth:2.0:oob in this parameter.
+ RedirectURIs string `form:"redirect_uris"`
+ // Space separated list of scopes. If none is provided, defaults to read.
+ Scopes string `form:"scopes"`
+ // A URL to the homepage of your app
+ Website string `form:"website"`
+}