From 8dc6b5ebb539ae6b124c38147628362272f96464 Mon Sep 17 00:00:00 2001 From: Willy Kloucek Date: Tue, 21 Sep 2021 11:23:37 +0200 Subject: [PATCH] add archiver and app provider capabilities --- .../archiver-approvider-capabilities.md | 6 ++++++ .../services/owncloud/ocs/data/capabilities.go | 18 ++++++++++++++++++ .../cloud/capabilities/capabilities.go | 8 ++++++++ 3 files changed, 32 insertions(+) create mode 100644 changelog/unreleased/archiver-approvider-capabilities.md diff --git a/changelog/unreleased/archiver-approvider-capabilities.md b/changelog/unreleased/archiver-approvider-capabilities.md new file mode 100644 index 0000000000..ba32667772 --- /dev/null +++ b/changelog/unreleased/archiver-approvider-capabilities.md @@ -0,0 +1,6 @@ +Enhancement: Add archiver and app provider to ocs capabilities + +The archiver and app provider has been added to the ocs capabilities. + +https://github.com/cs3org/reva/pull/2088 +https://github.com/owncloud/ocis/pull/2529 \ No newline at end of file diff --git a/internal/http/services/owncloud/ocs/data/capabilities.go b/internal/http/services/owncloud/ocs/data/capabilities.go index e86772e4f9..cdf1b94e22 100644 --- a/internal/http/services/owncloud/ocs/data/capabilities.go +++ b/internal/http/services/owncloud/ocs/data/capabilities.go @@ -101,6 +101,22 @@ type CapabilitiesFilesTusSupport struct { HTTPMethodOverride string `json:"http_method_override" xml:"http_method_override" mapstructure:"http_method_override"` } +// CapabilitiesArchiver holds available archivers information +type CapabilitiesArchiver struct { + Enabled bool `json:"enabled" xml:"enabled" mapstructure:"enabled"` + Version string `json:"version" xml:"version" mapstructure:"version"` + Formats []string `json:"formats" xml:"formats" mapstructure:"formats"` + ArchiverURL string `json:"archiver_url" xml:"archiver_url" mapstructure:"archiver_url"` +} + +// CapabilitiesAppProvider holds available app provider information +type CapabilitiesAppProvider struct { + Enabled bool `json:"enabled" xml:"enabled" mapstructure:"enabled"` + Version string `json:"version" xml:"version" mapstructure:"version"` + AppsURL string `json:"apps_url" xml:"apps_url" mapstructure:"apps_url"` + OpenURL string `json:"open_url" xml:"open_url" mapstructure:"open_url"` +} + // CapabilitiesFiles TODO this is storage specific, not global. What effect do these options have on the clients? type CapabilitiesFiles struct { PrivateLinks ocsBool `json:"privateLinks" xml:"privateLinks" mapstructure:"private_links"` @@ -110,6 +126,8 @@ type CapabilitiesFiles struct { Favorites ocsBool `json:"favorites" xml:"favorites"` BlacklistedFiles []string `json:"blacklisted_files" xml:"blacklisted_files>element" mapstructure:"blacklisted_files"` TusSupport *CapabilitiesFilesTusSupport `json:"tus_support" xml:"tus_support" mapstructure:"tus_support"` + Archivers []*CapabilitiesArchiver `json:"archivers" xml:"archivers" mapstructure:"archivers"` + AppProviders []*CapabilitiesAppProvider `json:"app_providers" xml:"app_providers" mapstructure:"app_providers"` } // CapabilitiesDav holds dav endpoint config diff --git a/internal/http/services/owncloud/ocs/handlers/cloud/capabilities/capabilities.go b/internal/http/services/owncloud/ocs/handlers/cloud/capabilities/capabilities.go index 6a4e572862..ea0fc6c209 100644 --- a/internal/http/services/owncloud/ocs/handlers/cloud/capabilities/capabilities.go +++ b/internal/http/services/owncloud/ocs/handlers/cloud/capabilities/capabilities.go @@ -104,6 +104,14 @@ func (h *Handler) Init(c *config.Config) { // h.c.Capabilities.Files.Versioning is boolean // h.c.Capabilities.Files.Favorites is boolean + if h.c.Capabilities.Files.Archivers == nil { + h.c.Capabilities.Files.Archivers = []*data.CapabilitiesArchiver{} + } + + if h.c.Capabilities.Files.AppProviders == nil { + h.c.Capabilities.Files.AppProviders = []*data.CapabilitiesAppProvider{} + } + // dav if h.c.Capabilities.Dav == nil {