Add user update/enable/disable/welcome-mail

This commit is contained in:
Philippe-Adrien Nousse 2018-07-05 15:01:25 +02:00
parent 5358f48c45
commit 98922c8d9a
2 changed files with 146 additions and 6 deletions

View File

@ -11,17 +11,17 @@ A simple Client for Nextcloud's API in Go.
- ~~list~~ - ~~list~~
- ~~get infos~~ - ~~get infos~~
- ~~create~~ - ~~create~~
- update - ~~update~~
- ~~delete~~ - ~~delete~~
- enable - ~~enable~~
- disable - ~~disable~~
- get groups - get groups
- add to group - add to group
- remove from group - remove from group
- get subadmin group - get subadmin group
- promote subadmin - promote subadmin
- demote subadmin - demote subadmin
- send welcome mail - ~~send welcome mail~~
- [Groups](#groups) - [Groups](#groups)
- create - create
- delete - delete
@ -78,6 +78,32 @@ Delete
```go ```go
func (c *Client) UserDelete(name string) error func (c *Client) UserDelete(name string) error
``` ```
Enable
```go
func (c *Client) UserEnable(name string) error
```
Disable
```go
func (c *Client) UserDisable(name string) error
```
Update
```go
func (c *Client) UserUpdateEmail(name string, email string) error
func (c *Client) UserUpdateDisplayName(name string, displayName string) error
func (c *Client) UserUpdatePhone(name string, phone string) error
func (c *Client) UserUpdateAddress(name string, address string) error
func (c *Client) UserUpdateWebSite(name string, website string) error
func (c *Client) UserUpdateTwitter(name string, twitter string) error
func (c *Client) UserUpdatePassword(name string, password string) error
func (c *Client) UserUpdateQuota(name string, quota string) error
```
## Groups ## Groups
TODO TODO

View File

@ -74,7 +74,6 @@ func (c *Client) UserCreate(username string, password string) error {
if err != nil { if err != nil {
return err return err
} }
fmt.Println(res.String())
var r types.UserResponse var r types.UserResponse
res.JSON(&r) res.JSON(&r)
if r.Ocs.Meta.Statuscode != 100 { if r.Ocs.Meta.Statuscode != 100 {
@ -94,7 +93,122 @@ func (c *Client) UserDelete(name string) error {
return err return err
} }
var ur types.UserResponse var ur types.UserResponse
fmt.Println(res.String()) res.JSON(&ur)
if ur.Ocs.Meta.Statuscode != 100 {
return fmt.Errorf(ur.Ocs.Meta.Message)
}
return nil
}
func (c *Client) UserEnable(name string) error {
if !c.loggedIn() {
return unauthorized
}
u := c.baseURL.ResolveReference(routes.users)
u.Path = path.Join(u.Path, name, "enable")
ro := &req.RequestOptions{
Data: map[string]string{},
}
res, err := c.session.Put(u.String(), ro)
if err != nil {
return err
}
var ur types.UserResponse
res.JSON(&ur)
if ur.Ocs.Meta.Statuscode != 100 {
return fmt.Errorf(ur.Ocs.Meta.Message)
}
return nil
}
func (c *Client) UserDisable(name string) error {
if !c.loggedIn() {
return unauthorized
}
u := c.baseURL.ResolveReference(routes.users)
u.Path = path.Join(u.Path, name, "disable")
ro := &req.RequestOptions{
Data: map[string]string{},
}
res, err := c.session.Put(u.String(), ro)
if err != nil {
return err
}
var ur types.UserResponse
res.JSON(&ur)
if ur.Ocs.Meta.Statuscode != 100 {
return fmt.Errorf(ur.Ocs.Meta.Message)
}
return nil
}
func (c *Client) UserSendWelcomeEmail(name string) error {
if !c.loggedIn() {
return unauthorized
}
u := c.baseURL.ResolveReference(routes.users)
u.Path = path.Join(u.Path, name, "welcome")
res, err := c.session.Post(u.String(), nil)
if err != nil {
return err
}
var ur types.UserResponse
res.JSON(&ur)
if ur.Ocs.Meta.Statuscode != 100 {
return fmt.Errorf(ur.Ocs.Meta.Message)
}
return nil
}
func (c *Client) UserUpdateEmail(name string, email string) error {
return c.userUpdateAttribute(name, "email", email)
}
func (c *Client) UserUpdateDisplayName(name string, displayName string) error {
return c.userUpdateAttribute(name, "displayname", displayName)
}
func (c *Client) UserUpdatePhone(name string, phone string) error {
return c.userUpdateAttribute(name, "phone", phone)
}
func (c *Client) UserUpdateAddress(name string, address string) error {
return c.userUpdateAttribute(name, "address", address)
}
func (c *Client) UserUpdateWebSite(name string, website string) error {
return c.userUpdateAttribute(name, "website", website)
}
func (c *Client) UserUpdateTwitter(name string, twitter string) error {
return c.userUpdateAttribute(name, "twitter", twitter)
}
func (c *Client) UserUpdatePassword(name string, password string) error {
return c.userUpdateAttribute(name, "password", password)
}
func (c *Client) UserUpdateQuota(name string, quota string) error {
return c.userUpdateAttribute(name, "quota", quota)
}
func (c *Client) userUpdateAttribute(name string, key string, value string) error {
if !c.loggedIn() {
return unauthorized
}
u := c.baseURL.ResolveReference(routes.users)
u.Path = path.Join(u.Path, name)
ro := &req.RequestOptions{
Data: map[string]string{
"key": key,
"value": value,
},
}
res, err := c.session.Put(u.String(), ro)
if err != nil {
return err
}
var ur types.UserResponse
res.JSON(&ur) res.JSON(&ur)
if ur.Ocs.Meta.Statuscode != 100 { if ur.Ocs.Meta.Statuscode != 100 {
return fmt.Errorf(ur.Ocs.Meta.Message) return fmt.Errorf(ur.Ocs.Meta.Message)