diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-11-29 08:54:00 +0100 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-11-29 11:10:30 +0100 |
commit | 2f7828d01f4c4ca2909f95f098627cd5475ed225 (patch) | |
tree | b5e71920b813b95cae3e32044be08b99223348ec /lib/xsapiv1/folders.go | |
parent | 5caebfb4b7c3b73988f067082b219ce5b7f409ba (diff) |
Refit source files to have a public xs-apiv1 lib package.
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'lib/xsapiv1/folders.go')
-rw-r--r-- | lib/xsapiv1/folders.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/xsapiv1/folders.go b/lib/xsapiv1/folders.go new file mode 100644 index 0000000..9506a1d --- /dev/null +++ b/lib/xsapiv1/folders.go @@ -0,0 +1,61 @@ +package xsapiv1 + +// FolderType definition +type FolderType string + +const ( + TypePathMap = "PathMap" + TypeCloudSync = "CloudSync" + TypeCifsSmb = "CIFS" +) + +// Folder Status definition +const ( + StatusErrorConfig = "ErrorConfig" + StatusDisable = "Disable" + StatusEnable = "Enable" + StatusPause = "Pause" + StatusSyncing = "Syncing" +) + +// FolderConfig is the config for one folder +type FolderConfig struct { + ID string `json:"id"` + Label string `json:"label"` + ClientPath string `json:"path"` + Type FolderType `json:"type"` + Status string `json:"status"` + IsInSync bool `json:"isInSync"` + DefaultSdk string `json:"defaultSdk"` + ClientData string `json:"clientData"` // free form field that can used by client + + // Not exported fields from REST API point of view + RootPath string `json:"-"` + + // FIXME: better to define an equivalent to union data and then implement + // UnmarshalJSON/MarshalJSON to decode/encode according to Type value + // Data interface{} `json:"data"` + + // Specific data depending on which Type is used + DataPathMap PathMapConfig `json:"dataPathMap,omitempty"` + DataCloudSync CloudSyncConfig `json:"dataCloudSync,omitempty"` +} + +// FolderConfigUpdatableFields List fields that can be updated using Update function +var FolderConfigUpdatableFields = []string{ + "Label", "DefaultSdk", "ClientData", +} + +// PathMapConfig Path mapping specific data +type PathMapConfig struct { + ServerPath string `json:"serverPath"` + + // Don't keep temporary file name (IOW we don't want to save it and reuse it) + CheckFile string `json:"checkFile" xml:"-"` + CheckContent string `json:"checkContent" xml:"-"` +} + +// CloudSyncConfig CloudSync (AKA Syncthing) specific data +type CloudSyncConfig struct { + SyncThingID string `json:"syncThingID"` +} |