mirror of
				https://gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud
				synced 2025-11-04 04:01:46 +00:00 
			
		
		
		
	updated README.md, unexported responses types
This commit is contained in:
		@@ -17,7 +17,7 @@ func (a *apps) List() ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r AppListResponse
 | 
			
		||||
	var r appListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Apps, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -31,7 +31,7 @@ func (a *apps) ListEnabled() ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r AppListResponse
 | 
			
		||||
	var r appListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Apps, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -45,7 +45,7 @@ func (a *apps) ListDisabled() ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r AppListResponse
 | 
			
		||||
	var r appListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Apps, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -56,7 +56,7 @@ func (a *apps) Infos(name string) (App, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return App{}, err
 | 
			
		||||
	}
 | 
			
		||||
	var r AppResponse
 | 
			
		||||
	var r appResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ func (a *appsConfig) List() (apps []string, err error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r AppConfigResponse
 | 
			
		||||
	var r appConfigResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Data, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -29,7 +29,7 @@ func (a *appsConfig) Keys(id string) (keys []string, err error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r AppConfigResponse
 | 
			
		||||
	var r appConfigResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Data, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -40,7 +40,7 @@ func (a *appsConfig) Value(id, key string) (string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
	}
 | 
			
		||||
	var r AppcConfigValueResponse
 | 
			
		||||
	var r appcConfigValueResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,9 +23,9 @@ func (c *client) Login(username string, password string) error {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	var r CapabilitiesResponse
 | 
			
		||||
	var r capabilitiesResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	// No need to check for Ocs.Meta.StatusCode as capabilities are always returned
 | 
			
		||||
	// No need to check for Ocs.meta.StatusCode as capabilities are always returned
 | 
			
		||||
	c.capabilities = &r.Ocs.Data.Capabilities
 | 
			
		||||
	c.version = &r.Ocs.Data.Version
 | 
			
		||||
	// Check if authentication failed
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								doc.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								doc.go
									
									
									
									
									
								
							@@ -21,7 +21,7 @@ For example, to list all the Nextcloud's instance users:
 | 
			
		||||
		url := "https://www.mynextcloud.com"
 | 
			
		||||
		username := "admin"
 | 
			
		||||
		password := "password"
 | 
			
		||||
		c, err := gonextcloud.newClient(url)
 | 
			
		||||
		c, err := gonextcloud.NewClient(url)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			panic(err)
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1566
									
								
								docs/README.md
									
									
									
									
									
								
							
							
						
						
									
										1566
									
								
								docs/README.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -11,8 +11,8 @@ type APIError struct {
 | 
			
		||||
	Message string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//ErrorFromMeta return a types.APIError from the Response's types.Meta
 | 
			
		||||
func ErrorFromMeta(meta Meta) *APIError {
 | 
			
		||||
//errorFromMeta return a types.APIError from the Response's types.meta
 | 
			
		||||
func errorFromMeta(meta meta) *APIError {
 | 
			
		||||
	return &APIError{
 | 
			
		||||
		meta.Statuscode,
 | 
			
		||||
		meta.Message,
 | 
			
		||||
@@ -43,8 +43,8 @@ func (e *UserUpdateError) Error() string {
 | 
			
		||||
	return strings.Join(errors, ", ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//NewUpdateError returns an UpdateError based on an UpdateError channel
 | 
			
		||||
func NewUpdateError(errors chan *UpdateError) *UserUpdateError {
 | 
			
		||||
//newUpdateError returns an UpdateError based on an UpdateError channel
 | 
			
		||||
func newUpdateError(errors chan *UpdateError) *UserUpdateError {
 | 
			
		||||
	ue := UserUpdateError{map[string]error{}}
 | 
			
		||||
	for e := range errors {
 | 
			
		||||
		if e != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ func TestUserUpdateErrors(t *testing.T) {
 | 
			
		||||
		}
 | 
			
		||||
		close(errs)
 | 
			
		||||
	}()
 | 
			
		||||
	uerrs := NewUpdateError(errs)
 | 
			
		||||
	uerrs := newUpdateError(errs)
 | 
			
		||||
	assert.Equal(t, exp, uerrs.Errors)
 | 
			
		||||
	assert.NotEmpty(t, uerrs.Error())
 | 
			
		||||
}
 | 
			
		||||
@@ -42,6 +42,6 @@ func TestUserUpdateErrorsNil(t *testing.T) {
 | 
			
		||||
		wg.Wait()
 | 
			
		||||
		close(errs)
 | 
			
		||||
	}()
 | 
			
		||||
	uerrs := NewUpdateError(errs)
 | 
			
		||||
	uerrs := newUpdateError(errs)
 | 
			
		||||
	assert.Nil(t, uerrs)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,11 @@
 | 
			
		||||
package gonextcloud
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// NewClient create a new client
 | 
			
		||||
func NewClient(hostname string) (Client, error) {
 | 
			
		||||
	return newClient(hostname)
 | 
			
		||||
@@ -130,3 +136,35 @@ type Users interface {
 | 
			
		||||
	GroupDemote(name string, group string) error
 | 
			
		||||
	GroupSubAdminList(name string) ([]string, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WebDav available methods
 | 
			
		||||
type WebDav interface {
 | 
			
		||||
	// ReadDir reads the contents of a remote directory
 | 
			
		||||
	ReadDir(path string) ([]os.FileInfo, error)
 | 
			
		||||
	// Stat returns the file stats for a specified path
 | 
			
		||||
	Stat(path string) (os.FileInfo, error)
 | 
			
		||||
	// Remove removes a remote file
 | 
			
		||||
	Remove(path string) error
 | 
			
		||||
	// RemoveAll removes remote files
 | 
			
		||||
	RemoveAll(path string) error
 | 
			
		||||
	// Mkdir makes a directory
 | 
			
		||||
	Mkdir(path string, _ os.FileMode) error
 | 
			
		||||
	// MkdirAll like mkdir -p, but for webdav
 | 
			
		||||
	MkdirAll(path string, _ os.FileMode) error
 | 
			
		||||
	// Rename moves a file from A to B
 | 
			
		||||
	Rename(oldpath, newpath string, overwrite bool) error
 | 
			
		||||
	// Copy copies a file from A to B
 | 
			
		||||
	Copy(oldpath, newpath string, overwrite bool) error
 | 
			
		||||
	// Read reads the contents of a remote file
 | 
			
		||||
	Read(path string) ([]byte, error)
 | 
			
		||||
	// ReadStream reads the stream for a given path
 | 
			
		||||
	ReadStream(path string) (io.ReadCloser, error)
 | 
			
		||||
	// Write writes data to a given path
 | 
			
		||||
	Write(path string, data []byte, _ os.FileMode) error
 | 
			
		||||
	// WriteStream writes a stream
 | 
			
		||||
	WriteStream(path string, stream io.Reader, _ os.FileMode) error
 | 
			
		||||
 | 
			
		||||
	// Walk walks the file tree rooted at root, calling walkFn for each file or
 | 
			
		||||
	// directory in the tree, including root.
 | 
			
		||||
	Walk(path string, walkFunc filepath.WalkFunc) error
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ package gonextcloud
 | 
			
		||||
 | 
			
		||||
import "strconv"
 | 
			
		||||
 | 
			
		||||
type GroupFolderBadFormatIDAndGroups struct {
 | 
			
		||||
type groupFolderBadFormatIDAndGroups struct {
 | 
			
		||||
	ID         string            `json:"id"`
 | 
			
		||||
	MountPoint string            `json:"mount_point"`
 | 
			
		||||
	Groups     map[string]string `json:"groups"`
 | 
			
		||||
@@ -10,7 +10,7 @@ type GroupFolderBadFormatIDAndGroups struct {
 | 
			
		||||
	Size       int               `json:"size"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GroupFolderBadFormatGroups struct {
 | 
			
		||||
type groupFolderBadFormatGroups struct {
 | 
			
		||||
	ID         int               `json:"id"`
 | 
			
		||||
	MountPoint string            `json:"mount_point"`
 | 
			
		||||
	Groups     map[string]string `json:"groups"`
 | 
			
		||||
@@ -26,7 +26,7 @@ type GroupFolder struct {
 | 
			
		||||
	Size       int                        `json:"size"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (gf *GroupFolderBadFormatGroups) FormatGroupFolder() GroupFolder {
 | 
			
		||||
func (gf *groupFolderBadFormatGroups) FormatGroupFolder() GroupFolder {
 | 
			
		||||
	g := GroupFolder{}
 | 
			
		||||
	g.ID = gf.ID
 | 
			
		||||
	g.MountPoint = gf.MountPoint
 | 
			
		||||
@@ -41,7 +41,7 @@ func (gf *GroupFolderBadFormatGroups) FormatGroupFolder() GroupFolder {
 | 
			
		||||
	return g
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (gf *GroupFolderBadFormatIDAndGroups) FormatGroupFolder() GroupFolder {
 | 
			
		||||
func (gf *groupFolderBadFormatIDAndGroups) FormatGroupFolder() GroupFolder {
 | 
			
		||||
	g := GroupFolder{}
 | 
			
		||||
	g.ID, _ = strconv.Atoi(gf.ID)
 | 
			
		||||
	g.MountPoint = gf.MountPoint
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ func (g *groupFolders) List() (map[int]GroupFolder, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r GroupFoldersListResponse
 | 
			
		||||
	var r groupFoldersListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	gfs := formatBadIDAndGroups(r.Ocs.Data)
 | 
			
		||||
	return gfs, nil
 | 
			
		||||
@@ -31,7 +31,7 @@ func (g *groupFolders) Get(id int) (GroupFolder, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return GroupFolder{}, err
 | 
			
		||||
	}
 | 
			
		||||
	var r GroupFoldersResponse
 | 
			
		||||
	var r groupFoldersResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	if r.Ocs.Data.ID == 0 {
 | 
			
		||||
		return GroupFolder{}, fmt.Errorf("%d is not a valid groupfolder's id", id)
 | 
			
		||||
@@ -51,7 +51,7 @@ func (g *groupFolders) Create(name string) (id int, err error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	var r GroupFoldersCreateResponse
 | 
			
		||||
	var r groupFoldersCreateResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	id, _ = strconv.Atoi(r.Ocs.Data.ID)
 | 
			
		||||
	return id, nil
 | 
			
		||||
@@ -129,7 +129,7 @@ func (g *groupFolders) SetQuota(folderID int, quota int) error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func formatBadIDAndGroups(g map[string]GroupFolderBadFormatIDAndGroups) map[int]GroupFolder {
 | 
			
		||||
func formatBadIDAndGroups(g map[string]groupFolderBadFormatIDAndGroups) map[int]GroupFolder {
 | 
			
		||||
	var gfs = map[int]GroupFolder{}
 | 
			
		||||
	for k := range g {
 | 
			
		||||
		i, _ := strconv.Atoi(k)
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ func (g *groups) List() ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r GroupListResponse
 | 
			
		||||
	var r groupListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Groups, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -33,7 +33,7 @@ func (g *groups) ListDetails(search string) ([]Group, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r GroupListDetailsResponse
 | 
			
		||||
	var r groupListDetailsResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Groups, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -44,7 +44,7 @@ func (g *groups) Users(name string) ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r UserListResponse
 | 
			
		||||
	var r userListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Users, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -58,7 +58,7 @@ func (g *groups) Search(search string) ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r GroupListResponse
 | 
			
		||||
	var r groupListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Groups, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -84,7 +84,7 @@ func (g *groups) SubAdminList(name string) ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r UserListResponse
 | 
			
		||||
	var r userListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Users, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ func (c *client) Monitoring() (*Monitoring, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var m MonitoringResponse
 | 
			
		||||
	var m monitoringResponse
 | 
			
		||||
	res.JSON(&m)
 | 
			
		||||
	return &m.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ func (n *notifications) List() ([]Notification, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r NotificationsListResponse
 | 
			
		||||
	var r notificationsListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -36,7 +36,7 @@ func (n *notifications) Get(id int) (Notification, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return Notification{}, err
 | 
			
		||||
	}
 | 
			
		||||
	var r NotificationResponse
 | 
			
		||||
	var r notificationResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										108
									
								
								responses.go
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								responses.go
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
package gonextcloud
 | 
			
		||||
 | 
			
		||||
//Meta
 | 
			
		||||
type Meta struct {
 | 
			
		||||
//meta
 | 
			
		||||
type meta struct {
 | 
			
		||||
	Status       string `json:"status"`
 | 
			
		||||
	Statuscode   int    `json:"statuscode"`
 | 
			
		||||
	Message      string `json:"message"`
 | 
			
		||||
@@ -9,109 +9,109 @@ type Meta struct {
 | 
			
		||||
	Itemsperpage string `json:"itemsperpage"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//ErrorResponse
 | 
			
		||||
type ErrorResponse struct {
 | 
			
		||||
//errorResponse
 | 
			
		||||
type errorResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta          `json:"meta"`
 | 
			
		||||
		Meta meta          `json:"meta"`
 | 
			
		||||
		Data []interface{} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//UserListResponse
 | 
			
		||||
type UserListResponse struct {
 | 
			
		||||
//userListResponse
 | 
			
		||||
type userListResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Users []string `json:"users"`
 | 
			
		||||
		} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type UserListDetailsResponse struct {
 | 
			
		||||
type userListDetailsResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Users map[string]UserDetails `json:"users"`
 | 
			
		||||
		} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//UserResponse
 | 
			
		||||
type UserResponse struct {
 | 
			
		||||
//userResponse
 | 
			
		||||
type userResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta        `json:"meta"`
 | 
			
		||||
		Meta meta        `json:"meta"`
 | 
			
		||||
		Data UserDetails `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//BaseResponse
 | 
			
		||||
type BaseResponse struct {
 | 
			
		||||
//baseResponse
 | 
			
		||||
type baseResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta     `json:"meta"`
 | 
			
		||||
		Meta meta     `json:"meta"`
 | 
			
		||||
		Data []string `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//GroupListResponse
 | 
			
		||||
type GroupListResponse struct {
 | 
			
		||||
//groupListResponse
 | 
			
		||||
type groupListResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Groups []string `json:"groups"`
 | 
			
		||||
		} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//GroupListDetailsResponse
 | 
			
		||||
type GroupListDetailsResponse struct {
 | 
			
		||||
//groupListDetailsResponse
 | 
			
		||||
type groupListDetailsResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Groups []Group `json:"groups"`
 | 
			
		||||
		} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//AppListResponse
 | 
			
		||||
type AppListResponse struct {
 | 
			
		||||
//appListResponse
 | 
			
		||||
type appListResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Apps []string `json:"apps"`
 | 
			
		||||
		} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//AppResponse
 | 
			
		||||
type AppResponse struct {
 | 
			
		||||
//appResponse
 | 
			
		||||
type appResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data App  `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type AppConfigResponse struct {
 | 
			
		||||
type appConfigResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Data []string `json:"data"`
 | 
			
		||||
		} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type AppcConfigValueResponse struct {
 | 
			
		||||
type appcConfigValueResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Data string `json:"data"`
 | 
			
		||||
		} `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//CapabilitiesResponse
 | 
			
		||||
type CapabilitiesResponse struct {
 | 
			
		||||
//capabilitiesResponse
 | 
			
		||||
type capabilitiesResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta `json:"meta"`
 | 
			
		||||
		Meta meta `json:"meta"`
 | 
			
		||||
		Data struct {
 | 
			
		||||
			Version      Version      `json:"version"`
 | 
			
		||||
			Capabilities Capabilities `json:"capabilities"`
 | 
			
		||||
@@ -127,58 +127,58 @@ type Version struct {
 | 
			
		||||
	Edition string `json:"edition"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type MonitoringResponse struct {
 | 
			
		||||
type monitoringResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta       `json:"meta"`
 | 
			
		||||
		Meta meta       `json:"meta"`
 | 
			
		||||
		Data Monitoring `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SharesListResponse struct {
 | 
			
		||||
type sharesListResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta    `json:"meta"`
 | 
			
		||||
		Meta meta    `json:"meta"`
 | 
			
		||||
		Data []Share `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SharesResponse struct {
 | 
			
		||||
type sharesResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta  `json:"meta"`
 | 
			
		||||
		Meta meta  `json:"meta"`
 | 
			
		||||
		Data Share `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GroupFoldersListResponse struct {
 | 
			
		||||
type groupFoldersListResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta                                       `json:"meta"`
 | 
			
		||||
		Data map[string]GroupFolderBadFormatIDAndGroups `json:"data"`
 | 
			
		||||
		Meta meta                                       `json:"meta"`
 | 
			
		||||
		Data map[string]groupFolderBadFormatIDAndGroups `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GroupFoldersCreateResponse struct {
 | 
			
		||||
type groupFoldersCreateResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta                            `json:"meta"`
 | 
			
		||||
		Data GroupFolderBadFormatIDAndGroups `json:"data"`
 | 
			
		||||
		Meta meta                            `json:"meta"`
 | 
			
		||||
		Data groupFolderBadFormatIDAndGroups `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GroupFoldersResponse struct {
 | 
			
		||||
type groupFoldersResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta                       `json:"meta"`
 | 
			
		||||
		Data GroupFolderBadFormatGroups `json:"data"`
 | 
			
		||||
		Meta meta                       `json:"meta"`
 | 
			
		||||
		Data groupFolderBadFormatGroups `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type NotificationsListResponse struct {
 | 
			
		||||
type notificationsListResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta           `json:"meta"`
 | 
			
		||||
		Meta meta           `json:"meta"`
 | 
			
		||||
		Data []Notification `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type NotificationResponse struct {
 | 
			
		||||
type notificationResponse struct {
 | 
			
		||||
	Ocs struct {
 | 
			
		||||
		Meta Meta         `json:"meta"`
 | 
			
		||||
		Meta meta         `json:"meta"`
 | 
			
		||||
		Data Notification `json:"data"`
 | 
			
		||||
	} `json:"ocs"`
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@ package gonextcloud
 | 
			
		||||
 | 
			
		||||
import "net/url"
 | 
			
		||||
 | 
			
		||||
// Routes references the available routes
 | 
			
		||||
type Routes struct {
 | 
			
		||||
// apiRoutes references the available routes
 | 
			
		||||
type apiRoutes struct {
 | 
			
		||||
	capabilities       *url.URL
 | 
			
		||||
	users              *url.URL
 | 
			
		||||
	groups             *url.URL
 | 
			
		||||
@@ -20,7 +20,7 @@ const badRequest = 998
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	apiPath = &url.URL{Path: "/ocs/v2.php"}
 | 
			
		||||
	routes  = Routes{
 | 
			
		||||
	routes  = apiRoutes{
 | 
			
		||||
		capabilities:       &url.URL{Path: apiPath.Path + "/cloud/capabilities"},
 | 
			
		||||
		users:              &url.URL{Path: apiPath.Path + "/cloud/users"},
 | 
			
		||||
		groups:             &url.URL{Path: apiPath.Path + "/cloud/groups"},
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@ func (s *shares) List() ([]Share, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r SharesListResponse
 | 
			
		||||
	var r sharesListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -38,7 +38,7 @@ func (s *shares) GetFromPath(path string, reshares bool, subfiles bool) ([]Share
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r SharesListResponse
 | 
			
		||||
	var r sharesListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -49,7 +49,7 @@ func (s *shares) Get(shareID string) (Share, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return Share{}, err
 | 
			
		||||
	}
 | 
			
		||||
	var r SharesListResponse
 | 
			
		||||
	var r sharesListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data[0], nil
 | 
			
		||||
}
 | 
			
		||||
@@ -81,7 +81,7 @@ func (s *shares) Create(
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return Share{}, err
 | 
			
		||||
	}
 | 
			
		||||
	var r SharesResponse
 | 
			
		||||
	var r sharesResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -138,7 +138,7 @@ func (s *shares) Update(shareUpdate ShareUpdate) error {
 | 
			
		||||
		wg.Wait()
 | 
			
		||||
		close(errs)
 | 
			
		||||
	}()
 | 
			
		||||
	if err := NewUpdateError(errs); err != nil {
 | 
			
		||||
	if err := newUpdateError(errs); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ func (u *users) List() ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r UserListResponse
 | 
			
		||||
	var r userListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Users, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -37,7 +37,7 @@ func (u *users) ListDetails() (map[string]UserDetails, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r UserListDetailsResponse
 | 
			
		||||
	var r userListDetailsResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Users, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -51,7 +51,7 @@ func (u *users) Get(name string) (*UserDetails, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r UserResponse
 | 
			
		||||
	var r userResponse
 | 
			
		||||
	js := res.String()
 | 
			
		||||
	// Nextcloud does not encode JSON properly
 | 
			
		||||
	js = reformatJSON(js)
 | 
			
		||||
@@ -70,7 +70,7 @@ func (u *users) Search(search string) ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r UserListResponse
 | 
			
		||||
	var r userListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Users, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -290,7 +290,7 @@ func (u *users) Update(user *UserDetails) error {
 | 
			
		||||
		close(errs)
 | 
			
		||||
	}()
 | 
			
		||||
	// Warning : we actually need to check the *err
 | 
			
		||||
	if err := NewUpdateError(errs); err != nil {
 | 
			
		||||
	if err := newUpdateError(errs); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
@@ -343,7 +343,7 @@ func (u *users) GroupList(name string) ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r GroupListResponse
 | 
			
		||||
	var r groupListResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data.Groups, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -399,7 +399,7 @@ func (u *users) GroupSubAdminList(name string) ([]string, error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var r BaseResponse
 | 
			
		||||
	var r baseResponse
 | 
			
		||||
	res.JSON(&r)
 | 
			
		||||
	return r.Ocs.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								utils.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								utils.go
									
									
									
									
									
								
							@@ -40,12 +40,12 @@ func (c *client) baseRequest(method string, route *url.URL, ro *req.RequestOptio
 | 
			
		||||
	}
 | 
			
		||||
	// As we cannot read the ReaderCloser twice, we use the string content
 | 
			
		||||
	js := res.String()
 | 
			
		||||
	var r BaseResponse
 | 
			
		||||
	var r baseResponse
 | 
			
		||||
	json.Unmarshal([]byte(js), &r)
 | 
			
		||||
	if r.Ocs.Meta.Statuscode == 200 || r.Ocs.Meta.Statuscode == 100 {
 | 
			
		||||
		return res, nil
 | 
			
		||||
	}
 | 
			
		||||
	err = ErrorFromMeta(r.Ocs.Meta)
 | 
			
		||||
	err = errorFromMeta(r.Ocs.Meta)
 | 
			
		||||
	return nil, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								webdav.go
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								webdav.go
									
									
									
									
									
								
							@@ -1,39 +0,0 @@
 | 
			
		||||
package gonextcloud
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// WebDav available methods
 | 
			
		||||
type WebDav interface {
 | 
			
		||||
	// ReadDir reads the contents of a remote directory
 | 
			
		||||
	ReadDir(path string) ([]os.FileInfo, error)
 | 
			
		||||
	// Stat returns the file stats for a specified path
 | 
			
		||||
	Stat(path string) (os.FileInfo, error)
 | 
			
		||||
	// Remove removes a remote file
 | 
			
		||||
	Remove(path string) error
 | 
			
		||||
	// RemoveAll removes remote files
 | 
			
		||||
	RemoveAll(path string) error
 | 
			
		||||
	// Mkdir makes a directory
 | 
			
		||||
	Mkdir(path string, _ os.FileMode) error
 | 
			
		||||
	// MkdirAll like mkdir -p, but for webdav
 | 
			
		||||
	MkdirAll(path string, _ os.FileMode) error
 | 
			
		||||
	// Rename moves a file from A to B
 | 
			
		||||
	Rename(oldpath, newpath string, overwrite bool) error
 | 
			
		||||
	// Copy copies a file from A to B
 | 
			
		||||
	Copy(oldpath, newpath string, overwrite bool) error
 | 
			
		||||
	// Read reads the contents of a remote file
 | 
			
		||||
	Read(path string) ([]byte, error)
 | 
			
		||||
	// ReadStream reads the stream for a given path
 | 
			
		||||
	ReadStream(path string) (io.ReadCloser, error)
 | 
			
		||||
	// Write writes data to a given path
 | 
			
		||||
	Write(path string, data []byte, _ os.FileMode) error
 | 
			
		||||
	// WriteStream writes a stream
 | 
			
		||||
	WriteStream(path string, stream io.Reader, _ os.FileMode) error
 | 
			
		||||
 | 
			
		||||
	// Walk walks the file tree rooted at root, calling walkFn for each file or
 | 
			
		||||
	// directory in the tree, including root.
 | 
			
		||||
	Walk(path string, walkFunc filepath.WalkFunc) error
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user