mirror of
https://gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud
synced 2024-11-22 01:16:24 +00:00
Improved tests with random names and added docs
This commit is contained in:
parent
1cc321d657
commit
91afc73ef6
2
Makefile
2
Makefile
@ -11,7 +11,7 @@ lint: ## Lint the files
|
||||
@golint -set_exit_status ${PKG_LIST}
|
||||
|
||||
test: ## Run unittests
|
||||
@go test -v ${PKG_LIST}
|
||||
@go test -v .
|
||||
|
||||
race: dep ## Run data race detector
|
||||
@go test -v -race ${PKG_LIST}
|
||||
|
2
doc.go
2
doc.go
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Package client is a Go client for the Nextcloud Provisioning API.
|
||||
Package gonextcloud is a Go client for the Nextcloud Provisioning API.
|
||||
|
||||
For more information about the Provisioning API, see the documentation:
|
||||
https://docs.nextcloud.com/server/13/admin_manual/configuration_user/user_provisioning_api.html
|
||||
|
@ -76,7 +76,6 @@ var (
|
||||
func(t *testing.T) {
|
||||
us, err := c.UserList()
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Contains(t, us, config.Login)
|
||||
},
|
||||
},
|
||||
@ -195,7 +194,7 @@ var (
|
||||
{
|
||||
"TestUserCreateExisting",
|
||||
func(t *testing.T) {
|
||||
err := c.UserCreate(config.NotExistingUser, password, nil)
|
||||
err := c.UserCreate(config.Login, password, nil)
|
||||
assert.Error(t, err)
|
||||
},
|
||||
},
|
||||
@ -480,11 +479,9 @@ func TestUserCreateWithoutPassword(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Nextcloud does not seems to like recreating a deleted user
|
||||
rand.Seed(time.Now().Unix())
|
||||
n := fmt.Sprintf("%s-%s", config.NotExistingUser, strconv.Itoa(rand.Int()))
|
||||
err := c.UserCreateWithoutPassword(n, config.Email, strings.Title(config.NotExistingUser))
|
||||
err := c.UserCreateWithoutPassword(config.NotExistingUser, config.Email, strings.Title(config.NotExistingUser))
|
||||
assert.NoError(t, err)
|
||||
err = c.UserDelete(n)
|
||||
err = c.UserDelete(config.NotExistingUser)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
@ -534,11 +531,13 @@ func LoadConfig() error {
|
||||
if e != "" {
|
||||
config.Email = e
|
||||
}
|
||||
config.NotExistingUser = fmt.Sprintf("%s-%s", config.NotExistingUser, strconv.Itoa(rand.Int()))
|
||||
return nil
|
||||
}
|
||||
|
||||
func initClient() error {
|
||||
if c == nil {
|
||||
rand.Seed(time.Now().Unix())
|
||||
if err := LoadConfig(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
"strconv"
|
||||
)
|
||||
|
||||
//GroupFoldersList returns the groups folders
|
||||
func (c *Client) GroupFoldersList() (map[int]types.GroupFolder, error) {
|
||||
res, err := c.baseRequest(http.MethodGet, routes.groupfolders, nil)
|
||||
if err != nil {
|
||||
@ -19,6 +20,7 @@ func (c *Client) GroupFoldersList() (map[int]types.GroupFolder, error) {
|
||||
return gfs, nil
|
||||
}
|
||||
|
||||
//GroupFolders returns the group folder details
|
||||
func (c *Client) GroupFolders(id int) (types.GroupFolder, error) {
|
||||
res, err := c.baseRequest(http.MethodGet, routes.groupfolders, nil, strconv.Itoa(id))
|
||||
if err != nil {
|
||||
@ -32,6 +34,7 @@ func (c *Client) GroupFolders(id int) (types.GroupFolder, error) {
|
||||
return r.Ocs.Data.FormatGroupFolder(), nil
|
||||
}
|
||||
|
||||
//GroupFoldersCreate creates a group folder
|
||||
func (c *Client) GroupFoldersCreate(name string) (id int, err error) {
|
||||
// TODO: Validate Folder name
|
||||
ro := &req.RequestOptions{
|
||||
@ -49,6 +52,7 @@ func (c *Client) GroupFoldersCreate(name string) (id int, err error) {
|
||||
return id, nil
|
||||
}
|
||||
|
||||
//GroupFoldersRename renames the group folder
|
||||
func (c *Client) GroupFoldersRename(groupID int, name string) error {
|
||||
ro := &req.RequestOptions{
|
||||
Data: map[string]string{
|
||||
@ -64,10 +68,8 @@ func (c *Client) GroupFoldersRename(groupID int, name string) error {
|
||||
}
|
||||
|
||||
//TODO func (c *Client) GroupFoldersDelete(id int) error {
|
||||
// // GroupFolders's response does not give any clues about success or failure
|
||||
// return nil
|
||||
//}
|
||||
|
||||
//GroupFoldersAddGroup adds group to folder
|
||||
func (c *Client) GroupFoldersAddGroup(folderID int, groupName string) error {
|
||||
ro := &req.RequestOptions{
|
||||
Data: map[string]string{
|
||||
@ -82,6 +84,7 @@ func (c *Client) GroupFoldersAddGroup(folderID int, groupName string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
//GroupFoldersRemoveGroup remove a group from the group folder
|
||||
func (c *Client) GroupFoldersRemoveGroup(folderID int, groupName string) error {
|
||||
// GroupFolders's response does not give any clues about success or failure
|
||||
_, err := c.baseRequest(http.MethodDelete, routes.groupfolders, nil, strconv.Itoa(folderID), "groups", groupName)
|
||||
@ -91,6 +94,7 @@ func (c *Client) GroupFoldersRemoveGroup(folderID int, groupName string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
//GroupFoldersSetGroupPermissions set groups permissions
|
||||
func (c *Client) GroupFoldersSetGroupPermissions(folderID int, groupName string, permission types.SharePermission) error {
|
||||
ro := &req.RequestOptions{
|
||||
Data: map[string]string{
|
||||
|
10
shares.go
10
shares.go
@ -9,6 +9,7 @@ import (
|
||||
"sync"
|
||||
)
|
||||
|
||||
//SharesList list all shares of the logged in user
|
||||
func (c *Client) SharesList() ([]types.Share, error) {
|
||||
res, err := c.baseRequest(http.MethodGet, routes.shares, nil)
|
||||
if err != nil {
|
||||
@ -19,6 +20,7 @@ func (c *Client) SharesList() ([]types.Share, error) {
|
||||
return r.Ocs.Data, nil
|
||||
}
|
||||
|
||||
//Shares return shares from a specific file or folder
|
||||
func (c *Client) Shares(path string, reshares bool, subfiles bool) ([]types.Share, error) {
|
||||
ro := &req.RequestOptions{
|
||||
Params: map[string]string{
|
||||
@ -36,6 +38,7 @@ func (c *Client) Shares(path string, reshares bool, subfiles bool) ([]types.Shar
|
||||
return r.Ocs.Data, nil
|
||||
}
|
||||
|
||||
//Share Get information about a known Share
|
||||
func (c *Client) Share(shareID string) (types.Share, error) {
|
||||
res, err := c.baseRequest(http.MethodGet, routes.shares, nil, shareID)
|
||||
if err != nil {
|
||||
@ -46,6 +49,7 @@ func (c *Client) Share(shareID string) (types.Share, error) {
|
||||
return r.Ocs.Data[0], nil
|
||||
}
|
||||
|
||||
//ShareCreate create a share
|
||||
func (c *Client) ShareCreate(
|
||||
path string,
|
||||
shareType types.ShareType,
|
||||
@ -77,11 +81,13 @@ func (c *Client) ShareCreate(
|
||||
return r.Ocs.Data, nil
|
||||
}
|
||||
|
||||
//ShareDelete Remove the given share.
|
||||
func (c *Client) ShareDelete(shareID int) error {
|
||||
_, err := c.baseRequest(http.MethodDelete, routes.shares, nil, strconv.Itoa(shareID))
|
||||
return err
|
||||
}
|
||||
|
||||
// ShareUpdate update share details
|
||||
// expireDate expireDate expects a well formatted date string, e.g. ‘YYYY-MM-DD’
|
||||
func (c *Client) ShareUpdate(shareUpdate types.ShareUpdate) error {
|
||||
errs := make(chan types.UpdateError)
|
||||
@ -130,19 +136,23 @@ func (c *Client) ShareUpdate(shareUpdate types.ShareUpdate) error {
|
||||
return types.NewUpdateError(errs)
|
||||
}
|
||||
|
||||
// ShareUpdateExpireDate updates the share's expire date
|
||||
// expireDate expects a well formatted date string, e.g. ‘YYYY-MM-DD’
|
||||
func (c *Client) ShareUpdateExpireDate(shareID int, expireDate string) error {
|
||||
return c.baseShareUpdate(strconv.Itoa(shareID), "expireDate", expireDate)
|
||||
}
|
||||
|
||||
//ShareUpdatePublicUpload enable or disable public upload
|
||||
func (c *Client) ShareUpdatePublicUpload(shareID int, public bool) error {
|
||||
return c.baseShareUpdate(strconv.Itoa(shareID), "publicUpload", strconv.FormatBool(public))
|
||||
}
|
||||
|
||||
//ShareUpdatePassword updates share password
|
||||
func (c *Client) ShareUpdatePassword(shareID int, password string) error {
|
||||
return c.baseShareUpdate(strconv.Itoa(shareID), "password", password)
|
||||
}
|
||||
|
||||
//ShareUpdatePermissions update permissions
|
||||
func (c *Client) ShareUpdatePermissions(shareID int, permissions types.SharePermission) error {
|
||||
return c.baseShareUpdate(strconv.Itoa(shareID), "permissions", strconv.Itoa(int(permissions)))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user