Add Get/Update for oauth2 apps (#311)
Update Documentation for Oauth2 Application delete also fix variable names to be similar to existing functions Signed-off-by: Dan Molik <dan@danmolik.com> Add Get/Update for oauth2 apps Add a get by id function for oauth applications, and add an update function, also ensuring the oauth2 update regenerates the client secret. Signed-off-by: Dan Molik <dan@danmolik.com> Co-authored-by: Dan Molik <dan@danmolik.com> Reviewed-on: https://gitea.com/gitea/go-sdk/pulls/311 Reviewed-by: 6543 <6543@noreply.gitea.io> Reviewed-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
50efd911c8
commit
0cf676d9f9
2 changed files with 34 additions and 1 deletions
|
@ -45,6 +45,28 @@ func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, error) {
|
||||||
return oauth, c.getParsedResponse("POST", "/user/applications/oauth2", jsonHeader, bytes.NewReader(body), oauth)
|
return oauth, c.getParsedResponse("POST", "/user/applications/oauth2", jsonHeader, bytes.NewReader(body), oauth)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateOauth2 a specific Oauth2 Application by ID and return a completed Oauth2 object.
|
||||||
|
func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2, error) {
|
||||||
|
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
||||||
|
return nil, e
|
||||||
|
}
|
||||||
|
body, err := json.Marshal(&opt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
oauth := new(Oauth2)
|
||||||
|
return oauth, c.getParsedResponse("PATCH", fmt.Sprintf("/user/applications/oauth2/%d", oauth2id), jsonHeader, bytes.NewReader(body), oauth)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetOauth2 a specific Oauth2 Application by ID.
|
||||||
|
func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, error) {
|
||||||
|
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
||||||
|
return nil, e
|
||||||
|
}
|
||||||
|
oauth2s := &Oauth2{}
|
||||||
|
return oauth2s, c.getParsedResponse("GET", fmt.Sprintf("/user/applications/oauth2/%d", oauth2id), nil, nil, &oauth2s)
|
||||||
|
}
|
||||||
|
|
||||||
// ListOauth2 all of your Oauth2 Applications.
|
// ListOauth2 all of your Oauth2 Applications.
|
||||||
func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, error) {
|
func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, error) {
|
||||||
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
||||||
|
@ -55,7 +77,7 @@ func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, error) {
|
||||||
return oauth2s, c.getParsedResponse("GET", fmt.Sprintf("/user/applications/oauth2?%s", opt.getURLQuery().Encode()), nil, nil, &oauth2s)
|
return oauth2s, c.getParsedResponse("GET", fmt.Sprintf("/user/applications/oauth2?%s", opt.getURLQuery().Encode()), nil, nil, &oauth2s)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteOauth2 delete an Oauth2 application by name
|
// DeleteOauth2 delete an Oauth2 application by ID
|
||||||
func (c *Client) DeleteOauth2(oauth2id int64) error {
|
func (c *Client) DeleteOauth2(oauth2id int64) error {
|
||||||
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
|
||||||
return e
|
return e
|
||||||
|
|
|
@ -28,5 +28,16 @@ func TestOauth2(t *testing.T) {
|
||||||
assert.Len(t, a, 1)
|
assert.Len(t, a, 1)
|
||||||
assert.EqualValues(t, newApp.Name, a[0].Name)
|
assert.EqualValues(t, newApp.Name, a[0].Name)
|
||||||
|
|
||||||
|
b, err := c.GetOauth2(newApp.ID)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, newApp.Name, b.Name)
|
||||||
|
|
||||||
|
b, err = c.UpdateOauth2(newApp.ID, CreateOauth2Option{Name: newApp.Name, RedirectURIs: []string{"https://test/login"}})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, newApp.Name, b.Name)
|
||||||
|
assert.EqualValues(t, "https://test/login", b.RedirectURIs[0])
|
||||||
|
assert.EqualValues(t, newApp.ID, b.ID)
|
||||||
|
assert.NotEqual(t, newApp.ClientSecret, b.ClientSecret)
|
||||||
|
|
||||||
assert.NoError(t, c.DeleteOauth2(newApp.ID))
|
assert.NoError(t, c.DeleteOauth2(newApp.ID))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue