mirror of
https://gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud
synced 2024-12-25 18:50:44 +00:00
cover | ||
docs | ||
types | ||
vendor | ||
.gitignore | ||
.gitlab-ci.yml | ||
apps.go | ||
auth.go | ||
client.go | ||
coverage.html | ||
doc.go | ||
example.config.yml | ||
gonextcloud_test.go | ||
gonextcloud.iml | ||
groupfolders.go | ||
groups.go | ||
LICENCE | ||
Makefile | ||
monitoring.go | ||
README.md | ||
routes.go | ||
shares.go | ||
users.go | ||
utils.go |
GoNextcloud
A simple Client for Nextcloud's Provisioning API in Go.
import "gitlab.adphi.fr/partitio/Nextcloud-Partitio/gonextcloud"
Usage
package main
import (
"fmt"
"gitlab.adphi.fr/partitio/Nextcloud-Partitio/gonextcloud"
)
func main() {
url := "https://www.mynextcloud.com"
username := "admin"
password := "password"
c, err := gonextcloud.NewClient(url)
if err != nil {
panic(err)
}
if err := c.Login(username, password); err != nil {
panic(err)
}
defer c.Logout()
}
Run tests
Configure the tests for your instance by editing example.config.yml and renaming it config.yml
then run the tests :
$ go test -v .
Docs
type Client
type Client struct {
}
func NewClient
func NewClient(hostname string) (*Client, error)
func (*Client) AppDisable
func (c *Client) AppDisable(name string) error
func (*Client) AppEnable
func (c *Client) AppEnable(name string) error
func (*Client) AppInfos
func (c *Client) AppInfos(name string) (types.App, error)
func (*Client) AppList
func (c *Client) AppList() ([]string, error)
func (*Client) AppListDisabled
func (c *Client) AppListDisabled() ([]string, error)
func (*Client) AppListEnabled
func (c *Client) AppListEnabled() ([]string, error)
func (*Client) GroupCreate
func (c *Client) GroupCreate(name string) error
func (*Client) GroupDelete
func (c *Client) GroupDelete(name string) error
func (*Client) GroupList
func (c *Client) GroupList() ([]string, error)
func (*Client) GroupSearch
func (c *Client) GroupSearch(search string) ([]string, error)
func (*Client) GroupSubAdminList
func (c *Client) GroupSubAdminList(name string) ([]string, error)
func (*Client) GroupUsers
func (c *Client) GroupUsers(name string) ([]string, error)
func (*Client) Login
func (c *Client) Login(username string, password string) error
func (*Client) Logout
func (c *Client) Logout() error
func (*Client) User
func (c *Client) User(name string) (*types.User, error)
func (*Client) UserCreate
func (c *Client) UserCreate(username string, password string, user *types.User) error
func (*Client) UserDelete
func (c *Client) UserDelete(name string) error
func (*Client) UserDisable
func (c *Client) UserDisable(name string) error
func (*Client) UserEnable
func (c *Client) UserEnable(name string) error
func (*Client) UserGroupAdd
func (c *Client) UserGroupAdd(name string, group string) error
func (*Client) UserGroupDemote
func (c *Client) UserGroupDemote(name string, group string) error
func (*Client) UserGroupList
func (c *Client) UserGroupList(name string) ([]string, error)
func (*Client) UserGroupPromote
func (c *Client) UserGroupPromote(name string, group string) error
func (*Client) UserGroupRemove
func (c *Client) UserGroupRemove(name string, group string) error
func (*Client) UserGroupSubAdminList
func (c *Client) UserGroupSubAdminList(name string) ([]string, error)
func (*Client) UserList
func (c *Client) UserList() ([]string, error)
func (*Client) UserSearch
func (c *Client) UserSearch(search string) ([]string, error)
func (*Client) UserSendWelcomeEmail
func (c *Client) UserSendWelcomeEmail(name string) error
func (*Client) UserUpdate
func (c *Client) UserUpdate(user *types.User) error
func (*Client) UserUpdateAddress
func (c *Client) UserUpdateAddress(name string, address string) error
func (*Client) UserUpdateDisplayName
func (c *Client) UserUpdateDisplayName(name string, displayName string) error
func (*Client) UserUpdateEmail
func (c *Client) UserUpdateEmail(name string, email string) error
func (*Client) UserUpdatePassword
func (c *Client) UserUpdatePassword(name string, password string) error
func (*Client) UserUpdatePhone
func (c *Client) UserUpdatePhone(name string, phone string) error
func (*Client) UserUpdateQuota
func (c *Client) UserUpdateQuota(name string, quota int) error
func (*Client) UserUpdateTwitter
func (c *Client) UserUpdateTwitter(name string, twitter string) error
func (*Client) UserUpdateWebSite
func (c *Client) UserUpdateWebSite(name string, website string) error
type Routes
type Routes struct {
}
types
import "gitlab.adphi.fr/partitio/Nextcloud-Partitio/gonextcloud/types"
type APIError
type APIError struct {
Code int
Message string
}
func ErrorFromMeta
func ErrorFromMeta(meta Meta) *APIError
func (*APIError) Error
func (e *APIError) Error() string
type App
type App struct {
ID string `json:"id"`
Ocsid string `json:"ocsid"`
Name string `json:"name"`
Summary string `json:"summary"`
Description string `json:"description"`
Licence string `json:"licence"`
Author string `json:"author"`
Version string `json:"version"`
Namespace string `json:"namespace"`
Types []string `json:"types"`
Documentation struct {
Admin string `json:"admin"`
Developer string `json:"developer"`
User string `json:"user"`
} `json:"documentation"`
Category []string `json:"category"`
Website string `json:"website"`
Bugs string `json:"bugs"`
Repository struct {
Attributes struct {
Type string `json:"type"`
} `json:"@attributes"`
Value string `json:"@value"`
} `json:"repository"`
Screenshot []interface{} `json:"screenshot"`
Dependencies struct {
Owncloud struct {
Attributes struct {
MinVersion string `json:"min-version"`
MaxVersion string `json:"max-version"`
} `json:"@attributes"`
} `json:"owncloud"`
Nextcloud struct {
Attributes struct {
MinVersion string `json:"min-version"`
MaxVersion string `json:"max-version"`
} `json:"@attributes"`
} `json:"nextcloud"`
} `json:"dependencies"`
Settings struct {
Admin []string `json:"admin"`
AdminSection []string `json:"admin-section"`
Personal []interface{} `json:"personal"`
PersonalSection []interface{} `json:"personal-section"`
} `json:"settings"`
Info []interface{} `json:"info"`
Remote []interface{} `json:"remote"`
Public []interface{} `json:"public"`
RepairSteps struct {
Install []interface{} `json:"install"`
PreMigration []interface{} `json:"pre-migration"`
PostMigration []interface{} `json:"post-migration"`
LiveMigration []interface{} `json:"live-migration"`
Uninstall []interface{} `json:"uninstall"`
} `json:"repair-steps"`
BackgroundJobs []interface{} `json:"background-jobs"`
TwoFactorProviders []interface{} `json:"two-factor-providers"`
Commands []interface{} `json:"commands"`
Activity struct {
Filters []interface{} `json:"filters"`
Settings []interface{} `json:"settings"`
Providers []interface{} `json:"providers"`
} `json:"activity"`
}
type AppListResponse
type AppListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Apps []string `json:"apps"`
} `json:"data"`
} `json:"ocs"`
}
type AppResponse
type AppResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data App `json:"data"`
} `json:"ocs"`
}
type BaseResponse
type BaseResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data []string `json:"data"`
} `json:"ocs"`
}
type Capabilities
type Capabilities struct {
Core struct {
Pollinterval int `json:"pollinterval"`
WebdavRoot string `json:"webdav-root"`
} `json:"core"`
Bruteforce struct {
Delay int `json:"delay"`
} `json:"bruteforce"`
Activity struct {
Apiv2 []string `json:"apiv2"`
} `json:"activity"`
Dav struct {
Chunking string `json:"chunking"`
} `json:"dav"`
FilesSharing struct {
APIEnabled bool `json:"api_enabled"`
Public struct {
Enabled bool `json:"enabled"`
Password struct {
Enforced bool `json:"enforced"`
} `json:"password"`
ExpireDate struct {
Enabled bool `json:"enabled"`
} `json:"expire_date"`
SendMail bool `json:"send_mail"`
Upload bool `json:"upload"`
UploadFilesDrop bool `json:"upload_files_drop"`
} `json:"public"`
Resharing bool `json:"resharing"`
User struct {
SendMail bool `json:"send_mail"`
ExpireDate struct {
Enabled bool `json:"enabled"`
} `json:"expire_date"`
} `json:"user"`
GroupSharing bool `json:"group_sharing"`
Group struct {
Enabled bool `json:"enabled"`
ExpireDate struct {
Enabled bool `json:"enabled"`
} `json:"expire_date"`
} `json:"group"`
Federation struct {
Outgoing bool `json:"outgoing"`
Incoming bool `json:"incoming"`
ExpireDate struct {
Enabled bool `json:"enabled"`
} `json:"expire_date"`
} `json:"federation"`
Sharebymail struct {
Enabled bool `json:"enabled"`
UploadFilesDrop struct {
Enabled bool `json:"enabled"`
} `json:"upload_files_drop"`
Password struct {
Enabled bool `json:"enabled"`
} `json:"password"`
ExpireDate struct {
Enabled bool `json:"enabled"`
} `json:"expire_date"`
} `json:"sharebymail"`
} `json:"files_sharing"`
Notifications struct {
OcsEndpoints []string `json:"ocs-endpoints"`
Push []string `json:"push"`
} `json:"notifications"`
PasswordPolicy struct {
MinLength int `json:"minLength"`
EnforceNonCommonPassword bool `json:"enforceNonCommonPassword"`
EnforceNumericCharacters bool `json:"enforceNumericCharacters"`
EnforceSpecialCharacters bool `json:"enforceSpecialCharacters"`
EnforceUpperLowerCase bool `json:"enforceUpperLowerCase"`
} `json:"password_policy"`
Theming struct {
Name string `json:"name"`
URL string `json:"url"`
Slogan string `json:"slogan"`
Color string `json:"color"`
ColorText string `json:"color-text"`
ColorElement string `json:"color-element"`
Logo string `json:"logo"`
Background string `json:"background"`
BackgroundPlain bool `json:"background-plain"`
BackgroundDefault bool `json:"background-default"`
} `json:"theming"`
Files struct {
Bigfilechunking bool `json:"bigfilechunking"`
BlacklistedFiles []string `json:"blacklisted_files"`
Undelete bool `json:"undelete"`
Versioning bool `json:"versioning"`
} `json:"files"`
}
type CapabilitiesResponse
type CapabilitiesResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Version struct {
Major int `json:"major"`
Minor int `json:"minor"`
Micro int `json:"micro"`
String string `json:"string"`
Edition string `json:"edition"`
} `json:"version"`
Capabilities Capabilities `json:"capabilities"`
} `json:"data"`
} `json:"ocs"`
}
type ErrorResponse
type ErrorResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data []interface{} `json:"data"`
} `json:"ocs"`
}
type GroupListResponse
type GroupListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Groups []string `json:"groups"`
} `json:"data"`
} `json:"ocs"`
}
type Meta
type Meta struct {
Status string `json:"status"`
Statuscode int `json:"statuscode"`
Message string `json:"message"`
Totalitems string `json:"totalitems"`
Itemsperpage string `json:"itemsperpage"`
}
type UpdateError
type UpdateError struct {
Field string
Error error
}
type User
type User struct {
Enabled bool `json:"enabled"`
ID string `json:"id"`
Quota struct {
Free int64 `json:"free"`
Used int `json:"used"`
Total int64 `json:"total"`
Relative float64 `json:"relative"`
Quota int `json:"quota"`
} `json:"quota"`
Email string `json:"email"`
Displayname string `json:"displayname"`
Phone string `json:"phone"`
Address string `json:"address"`
Website string `json:"website"`
Twitter string `json:"twitter"`
Groups []string `json:"groups"`
Language string `json:"language"`
}
type UserListResponse
type UserListResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data struct {
Users []string `json:"users"`
} `json:"data"`
} `json:"ocs"`
}
type UserResponse
type UserResponse struct {
Ocs struct {
Meta Meta `json:"meta"`
Data User `json:"data"`
} `json:"ocs"`
}
type UserUpdateError
type UserUpdateError struct {
Errors map[string]error
}
func NewUpdateError
func NewUpdateError(errors chan UpdateError) *UserUpdateError
func (*UserUpdateError) Error
func (e *UserUpdateError) Error() string