24
24
*/
25
25
package com.owncloud.android.lib.resources.response
26
26
27
+ import com.owncloud.android.lib.resources.status.RemoteCapability
28
+ import com.owncloud.android.lib.resources.status.RemoteCapability.CapabilityBooleanType
27
29
import com.squareup.moshi.Json
28
30
import com.squareup.moshi.JsonClass
29
31
30
32
@JsonClass(generateAdapter = true )
31
33
data class CapabilityResponse (
32
- @Json(name = NODE_SERVER_VERSION )
34
+ @Json(name = " version " )
33
35
val serverVersion : ServerVersion ,
34
36
val capabilities : Capabilities
35
- )
37
+ ) {
38
+ fun toRemoteCapability (): RemoteCapability = RemoteCapability (
39
+ versionMayor = serverVersion.major,
40
+ versionMinor = serverVersion.minor,
41
+ versionMicro = serverVersion.micro,
42
+ versionString = serverVersion.string,
43
+ versionEdition = serverVersion.edition,
44
+ corePollinterval = capabilities.coreCapabilities.pollinterval,
45
+ filesSharingApiEnabled = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingApiEnabled),
46
+ filesSharingResharing = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingReSharing),
47
+ filesSharingPublicEnabled = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.enabled),
48
+ filesSharingPublicUpload = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicUpload),
49
+ filesSharingPublicSupportsUploadOnly = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicUploadOnly),
50
+ filesSharingPublicMultiple = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicMultiple),
51
+ filesSharingPublicPasswordEnforced = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforced),
52
+ filesSharingPublicPasswordEnforcedReadOnly = CapabilityBooleanType .fromBooleanValue(
53
+ capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedReadOnly
54
+ ),
55
+ filesSharingPublicPasswordEnforcedReadWrite = CapabilityBooleanType .fromBooleanValue(
56
+ capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedReadWrite
57
+ ),
58
+ filesSharingPublicPasswordEnforcedUploadOnly = CapabilityBooleanType .fromBooleanValue(
59
+ capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedUploadOnly
60
+ ),
61
+ filesSharingPublicExpireDateEnabled = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.enabled),
62
+ filesSharingPublicExpireDateDays = capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.days
63
+ ? : 0 ,
64
+ filesSharingPublicExpireDateEnforced = CapabilityBooleanType .fromBooleanValue(
65
+ capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.enforced ? : false
66
+ ),
67
+ filesBigFileChunking = CapabilityBooleanType .fromBooleanValue(capabilities.filesCapabilities.bigfilechunking),
68
+ filesUndelete = CapabilityBooleanType .fromBooleanValue(capabilities.filesCapabilities.undelete),
69
+ filesVersioning = CapabilityBooleanType .fromBooleanValue(capabilities.filesCapabilities.versioning),
70
+ filesSharingFederationIncoming = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingFederation.incoming),
71
+ filesSharingFederationOutgoing = CapabilityBooleanType .fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingFederation.outgoing)
72
+ )
73
+ }
36
74
37
75
@JsonClass(generateAdapter = true )
38
76
data class Capabilities (
39
- @Json(name = NODE_CORE )
77
+ @Json(name = " core " )
40
78
val coreCapabilities : CoreCapabilities ,
41
- @Json(name = NODE_FILES_SHARING )
79
+ @Json(name = " files_sharing " )
42
80
val fileSharingCapabilities : FileSharingCapabilities ,
43
- @Json(name = NODE_FILES )
81
+ @Json(name = " files " )
44
82
val filesCapabilities : FilesCapabilities
45
83
)
46
84
@@ -51,47 +89,45 @@ data class CoreCapabilities(
51
89
52
90
@JsonClass(generateAdapter = true )
53
91
data class FileSharingCapabilities (
54
- @Json(name = PROPERTY_FILES_SHARING_API_ENABLED )
92
+ @Json(name = " api_enabled " )
55
93
val fileSharingApiEnabled : Boolean ,
56
- @Json(name = PROPERTY_FILES_SHARING_SEARCH_MIN_LENGTH )
57
- val fileSharingSearchMinLength : Int ,
58
- @Json(name = NODE_FILES_SHARING_PUBLIC )
94
+ @Json(name = " public" )
59
95
val fileSharingPublic : FileSharingPublic ,
60
- @Json(name = PROPERTY_FILES_SHARING_RESHARING )
96
+ @Json(name = " resharing " )
61
97
val fileSharingReSharing : Boolean ,
62
- @Json(name = NODE_FEDERATION )
98
+ @Json(name = " federation " )
63
99
val fileSharingFederation : FileSharingFederation
64
100
)
65
101
66
102
@JsonClass(generateAdapter = true )
67
103
data class FileSharingPublic (
68
104
val enabled : Boolean ,
69
- @Json(name = PROPERTY_FILES_SHARING_PUBLIC_UPLOAD )
105
+ @Json(name = " upload " )
70
106
val fileSharingPublicUpload : Boolean ,
71
- @Json(name = PROPERTY_FILES_SHARING_PUBLIC_UPLOAD_ONLY )
107
+ @Json(name = " supports_upload_only " )
72
108
val fileSharingPublicUploadOnly : Boolean ,
73
- @Json(name = PROPERTY_FILES_SHARING_PUBLIC_MULTIPLE )
109
+ @Json(name = " multiple " )
74
110
val fileSharingPublicMultiple : Boolean ,
75
- @Json(name = NODE_PASSWORD )
111
+ @Json(name = " password " )
76
112
val fileSharingPublicPassword : FileSharingPublicPassword ,
77
- @Json(name = NODE_EXPIRE_DATE )
113
+ @Json(name = " expire_date " )
78
114
val fileSharingPublicExpireDate : FileSharingPublicExpireDate
79
115
)
80
116
81
117
@JsonClass(generateAdapter = true )
82
118
data class FileSharingPublicPassword (
83
119
val enforced : Boolean ,
84
- @Json(name = NODE_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED )
120
+ @Json(name = " enforced_for " )
85
121
val enforcedFor : FileSharingPublicPasswordEnforced
86
122
)
87
123
88
124
@JsonClass(generateAdapter = true )
89
125
data class FileSharingPublicPasswordEnforced (
90
- @Json(name = PROPERTY_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED_READ_ONLY )
126
+ @Json(name = " read_only " )
91
127
val enforcedReadOnly : Boolean ,
92
- @Json(name = PROPERTY_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED_READ_WRITE )
128
+ @Json(name = " read_write " )
93
129
val enforcedReadWrite : Boolean ,
94
- @Json(name = PROPERTY_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED_UPLOAD_ONLY )
130
+ @Json(name = " upload_only " )
95
131
val enforcedUploadOnly : Boolean
96
132
)
97
133
@@ -123,29 +159,3 @@ data class ServerVersion(
123
159
var string : String = " " ,
124
160
var edition : String = " "
125
161
)
126
-
127
- private const val NODE_SERVER_VERSION = " version"
128
-
129
- private const val NODE_CORE = " core"
130
-
131
- private const val NODE_FILES_SHARING = " files_sharing"
132
- private const val PROPERTY_FILES_SHARING_API_ENABLED = " api_enabled"
133
- private const val PROPERTY_FILES_SHARING_SEARCH_MIN_LENGTH = " search_min_length"
134
- private const val PROPERTY_FILES_SHARING_RESHARING = " resharing"
135
-
136
- private const val NODE_FILES_SHARING_PUBLIC = " public"
137
- private const val PROPERTY_FILES_SHARING_PUBLIC_UPLOAD = " upload"
138
- private const val PROPERTY_FILES_SHARING_PUBLIC_UPLOAD_ONLY = " supports_upload_only"
139
- private const val PROPERTY_FILES_SHARING_PUBLIC_MULTIPLE = " multiple"
140
-
141
- private const val NODE_FEDERATION = " federation"
142
-
143
- private const val NODE_PASSWORD = " password"
144
- private const val NODE_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED = " enforced_for"
145
- private const val PROPERTY_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED_READ_ONLY = " read_only"
146
- private const val PROPERTY_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED_READ_WRITE = " read_write"
147
- private const val PROPERTY_FILES_SHARING_PUBLIC_PASSWORD_ENFORCED_UPLOAD_ONLY = " upload_only"
148
-
149
- private const val NODE_EXPIRE_DATE = " expire_date"
150
-
151
- private const val NODE_FILES = " files"
0 commit comments