summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorGustavo Marin <gustavo.marin@intelygenz.com>2020-02-29 07:19:32 +0100
committerGitHub <noreply@github.com>2020-02-29 03:19:32 -0300
commitaf61b2249ab9d0afb7424509112d06c578dca059 (patch)
tree1857e96d874b956136de1fe652366f00027550a5 /modules
parent7e8cdba18120c4588d1921f07593a9a66eaa1411 (diff)
downloadgitea-af61b2249ab9d0afb7424509112d06c578dca059.tar.gz
gitea-af61b2249ab9d0afb7424509112d06c578dca059.zip
adds API endpoints to manage OAuth2 Application (list/create/delete) (#10437)
* add API endpoint to create OAuth2 Application. * move endpoint to /user. Add swagger documentations and proper response type. * change json tags to snake_case. add CreateOAuth2ApplicationOptions to swagger docs. * change response status to Created (201) * add methods to list OAuth2 apps and delete an existing OAuth2 app by ID. * add APIFormat convert method and file header * fixed header * hide secret on oauth2 application list * add Created time to API response * add API integration tests for create/list/delete OAuth2 applications. Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/convert/convert.go12
-rw-r--r--modules/structs/user_app.go22
2 files changed, 34 insertions, 0 deletions
diff --git a/modules/convert/convert.go b/modules/convert/convert.go
index 31b46bc7eb..cab2f84bb9 100644
--- a/modules/convert/convert.go
+++ b/modules/convert/convert.go
@@ -388,3 +388,15 @@ func ToTopicResponse(topic *models.Topic) *api.TopicResponse {
Updated: topic.UpdatedUnix.AsTime(),
}
}
+
+// ToOAuth2Application convert from models.OAuth2Application to api.OAuth2Application
+func ToOAuth2Application(app *models.OAuth2Application) *api.OAuth2Application {
+ return &api.OAuth2Application{
+ ID: app.ID,
+ Name: app.Name,
+ ClientID: app.ClientID,
+ ClientSecret: app.ClientSecret,
+ RedirectURIs: app.RedirectURIs,
+ Created: app.CreatedUnix.AsTime(),
+ }
+}
diff --git a/modules/structs/user_app.go b/modules/structs/user_app.go
index 9340486685..a0b0c3cb70 100644
--- a/modules/structs/user_app.go
+++ b/modules/structs/user_app.go
@@ -7,6 +7,7 @@ package structs
import (
"encoding/base64"
+ "time"
)
// BasicAuthEncode generate base64 of basic auth head
@@ -32,3 +33,24 @@ type AccessTokenList []*AccessToken
type CreateAccessTokenOption struct {
Name string `json:"name" binding:"Required"`
}
+
+// CreateOAuth2ApplicationOptions holds options to create an oauth2 application
+type CreateOAuth2ApplicationOptions struct {
+ Name string `json:"name" binding:"Required"`
+ RedirectURIs []string `json:"redirect_uris" binding:"Required"`
+}
+
+// OAuth2Application represents an OAuth2 application.
+// swagger:response OAuth2Application
+type OAuth2Application struct {
+ ID int64 `json:"id"`
+ Name string `json:"name"`
+ ClientID string `json:"client_id"`
+ ClientSecret string `json:"client_secret"`
+ RedirectURIs []string `json:"redirect_uris"`
+ Created time.Time `json:"created"`
+}
+
+// OAuth2ApplicationList represents a list of OAuth2 applications.
+// swagger:response OAuth2ApplicationList
+type OAuth2ApplicationList []*OAuth2Application