mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-07 16:06:08 +00:00
Modify remote operations to create or update shares
This commit is contained in:
parent
688a978b1e
commit
4849be5daa
@ -65,8 +65,7 @@ import java.util.Locale
|
|||||||
* To obtain combinations, add the desired values together.
|
* To obtain combinations, add the desired values together.
|
||||||
* For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27.
|
* For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27.
|
||||||
*/
|
*/
|
||||||
class CreateRemoteShareOperation
|
class CreateRemoteShareOperation(
|
||||||
(
|
|
||||||
private val remoteFilePath: String,
|
private val remoteFilePath: String,
|
||||||
private val shareType: ShareType,
|
private val shareType: ShareType,
|
||||||
private val shareWith: String,
|
private val shareWith: String,
|
||||||
@ -107,10 +106,10 @@ class CreateRemoteShareOperation
|
|||||||
formBodyBuilder.add(PARAM_EXPIRATION_DATE, formattedExpirationDate)
|
formBodyBuilder.add(PARAM_EXPIRATION_DATE, formattedExpirationDate)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (publicUpload == true) {
|
if (publicUpload) {
|
||||||
formBodyBuilder.add(PARAM_PUBLIC_UPLOAD, publicUpload.toString())
|
formBodyBuilder.add(PARAM_PUBLIC_UPLOAD, publicUpload.toString())
|
||||||
}
|
}
|
||||||
if (!password.isNullOrEmpty()) {
|
if (password.isNotEmpty()) {
|
||||||
formBodyBuilder.add(PARAM_PASSWORD, password)
|
formBodyBuilder.add(PARAM_PASSWORD, password)
|
||||||
}
|
}
|
||||||
if (RemoteShare.DEFAULT_PERMISSION != permissions) {
|
if (RemoteShare.DEFAULT_PERMISSION != permissions) {
|
||||||
@ -126,7 +125,7 @@ class CreateRemoteShareOperation
|
|||||||
postMethod.setRequestBody(formBodyBuilder.build())
|
postMethod.setRequestBody(formBodyBuilder.build())
|
||||||
|
|
||||||
postMethod.setRequestHeader(HttpConstants.CONTENT_TYPE_HEADER, HttpConstants.CONTENT_TYPE_URLENCODED_UTF8)
|
postMethod.setRequestHeader(HttpConstants.CONTENT_TYPE_HEADER, HttpConstants.CONTENT_TYPE_URLENCODED_UTF8)
|
||||||
postMethod.addRequestHeader(RemoteOperation.OCS_API_HEADER, RemoteOperation.OCS_API_HEADER_VALUE)
|
postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE)
|
||||||
|
|
||||||
val status = client.executeHttpMethod(postMethod)
|
val status = client.executeHttpMethod(postMethod)
|
||||||
|
|
||||||
@ -141,7 +140,6 @@ class CreateRemoteShareOperation
|
|||||||
result = parser.parse(postMethod.responseBodyAsString)
|
result = parser.parse(postMethod.responseBodyAsString)
|
||||||
|
|
||||||
if (result.isSuccess && retrieveShareDetails) {
|
if (result.isSuccess && retrieveShareDetails) {
|
||||||
|
|
||||||
// TODO Use executeHttpMethod
|
// TODO Use executeHttpMethod
|
||||||
// retrieve more info - POST only returns the index of the new share
|
// retrieve more info - POST only returns the index of the new share
|
||||||
val emptyShare = result.data.shares[0]
|
val emptyShare = result.data.shares[0]
|
||||||
@ -178,4 +176,4 @@ class CreateRemoteShareOperation
|
|||||||
private const val PARAM_PERMISSIONS = "permissions"
|
private const val PARAM_PERMISSIONS = "permissions"
|
||||||
private const val FORMAT_EXPIRATION_DATE = "yyyy-MM-dd"
|
private const val FORMAT_EXPIRATION_DATE = "yyyy-MM-dd"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ class RemoteShare : Parcelable, Serializable {
|
|||||||
var fileSource: Long = 0
|
var fileSource: Long = 0
|
||||||
var itemSource: Long = 0
|
var itemSource: Long = 0
|
||||||
var shareType: ShareType? = null
|
var shareType: ShareType? = null
|
||||||
var permissions: Int = INIT_PERMISSION
|
var permissions: Int = DEFAULT_PERMISSION
|
||||||
var sharedDate: Long = INIT_SHARED_DATE
|
var sharedDate: Long = INIT_SHARED_DATE
|
||||||
var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS
|
var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS
|
||||||
var isFolder: Boolean = false
|
var isFolder: Boolean = false
|
||||||
@ -156,7 +156,6 @@ class RemoteShare : Parcelable, Serializable {
|
|||||||
|
|
||||||
private val TAG = RemoteShare::class.java.simpleName
|
private val TAG = RemoteShare::class.java.simpleName
|
||||||
|
|
||||||
const val INIT_PERMISSION = 0
|
|
||||||
const val DEFAULT_PERMISSION = -1
|
const val DEFAULT_PERMISSION = -1
|
||||||
const val READ_PERMISSION_FLAG = 1
|
const val READ_PERMISSION_FLAG = 1
|
||||||
const val UPDATE_PERMISSION_FLAG = 2
|
const val UPDATE_PERMISSION_FLAG = 2
|
||||||
|
@ -31,7 +31,7 @@ import com.owncloud.android.lib.common.http.methods.nonwebdav.PutMethod
|
|||||||
import com.owncloud.android.lib.common.operations.RemoteOperation
|
import com.owncloud.android.lib.common.operations.RemoteOperation
|
||||||
import com.owncloud.android.lib.common.operations.RemoteOperationResult
|
import com.owncloud.android.lib.common.operations.RemoteOperationResult
|
||||||
import com.owncloud.android.lib.common.utils.Log_OC
|
import com.owncloud.android.lib.common.utils.Log_OC
|
||||||
import com.owncloud.android.lib.resources.shares.RemoteShare.Companion.INIT_PERMISSION
|
import com.owncloud.android.lib.resources.shares.RemoteShare.Companion.DEFAULT_PERMISSION
|
||||||
import okhttp3.FormBody
|
import okhttp3.FormBody
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
@ -51,11 +51,14 @@ import java.util.Locale
|
|||||||
class UpdateRemoteShareOperation
|
class UpdateRemoteShareOperation
|
||||||
/**
|
/**
|
||||||
* Constructor. No update is initialized by default, need to be applied with setters below.
|
* Constructor. No update is initialized by default, need to be applied with setters below.
|
||||||
*
|
|
||||||
* @param remoteId Identifier of the share to update.
|
|
||||||
*/
|
*/
|
||||||
(private val remoteId: Long) : RemoteOperation<ShareParserResult>() {
|
(
|
||||||
|
/**
|
||||||
|
* @param remoteId Identifier of the share to update.
|
||||||
|
*/
|
||||||
|
private val remoteId: Long
|
||||||
|
|
||||||
|
) : RemoteOperation<ShareParserResult>() {
|
||||||
/**
|
/**
|
||||||
* Password to update in Share resource.
|
* Password to update in Share resource.
|
||||||
*
|
*
|
||||||
@ -81,7 +84,7 @@ class UpdateRemoteShareOperation
|
|||||||
* @param permissions Permissions to set to the target share.
|
* @param permissions Permissions to set to the target share.
|
||||||
* Values <= 0 result in no update applied to the permissions.
|
* Values <= 0 result in no update applied to the permissions.
|
||||||
*/
|
*/
|
||||||
var permissions: Int = INIT_PERMISSION
|
var permissions: Int = DEFAULT_PERMISSION
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable upload permissions to update in Share resource.
|
* Enable upload permissions to update in Share resource.
|
||||||
@ -90,6 +93,7 @@ class UpdateRemoteShareOperation
|
|||||||
* Null results in no update applied to the upload permission.
|
* Null results in no update applied to the upload permission.
|
||||||
*/
|
*/
|
||||||
var publicUpload: Boolean? = null
|
var publicUpload: Boolean? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name to update in Share resource. Ignored by servers previous to version 10.0.0
|
* Name to update in Share resource. Ignored by servers previous to version 10.0.0
|
||||||
*
|
*
|
||||||
@ -99,13 +103,6 @@ class UpdateRemoteShareOperation
|
|||||||
*/
|
*/
|
||||||
var name: String? = null
|
var name: String? = null
|
||||||
|
|
||||||
init {
|
|
||||||
password = null // no update
|
|
||||||
expirationDateInMillis = INITIAL_EXPIRATION_DATE_IN_MILLIS // no update
|
|
||||||
publicUpload = null
|
|
||||||
permissions = RemoteShare.DEFAULT_PERMISSION
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
|
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
|
||||||
var result: RemoteOperationResult<ShareParserResult>
|
var result: RemoteOperationResult<ShareParserResult>
|
||||||
|
|
||||||
@ -114,7 +111,7 @@ class UpdateRemoteShareOperation
|
|||||||
|
|
||||||
// Parameters to update
|
// Parameters to update
|
||||||
if (name != null) {
|
if (name != null) {
|
||||||
formBodyBuilder.add(PARAM_NAME, name!!)
|
formBodyBuilder.add(PARAM_NAME, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (expirationDateInMillis < INITIAL_EXPIRATION_DATE_IN_MILLIS) {
|
if (expirationDateInMillis < INITIAL_EXPIRATION_DATE_IN_MILLIS) {
|
||||||
@ -136,7 +133,7 @@ class UpdateRemoteShareOperation
|
|||||||
|
|
||||||
// IMPORTANT: permissions parameter needs to be updated after mPublicUpload parameter,
|
// IMPORTANT: permissions parameter needs to be updated after mPublicUpload parameter,
|
||||||
// otherwise they would be set always as 1 (READ) in the server when mPublicUpload was updated
|
// otherwise they would be set always as 1 (READ) in the server when mPublicUpload was updated
|
||||||
if (permissions > INIT_PERMISSION) {
|
if (permissions > DEFAULT_PERMISSION) {
|
||||||
// set permissions
|
// set permissions
|
||||||
formBodyBuilder.add(PARAM_PERMISSIONS, permissions.toString())
|
formBodyBuilder.add(PARAM_PERMISSIONS, permissions.toString())
|
||||||
}
|
}
|
||||||
@ -179,7 +176,6 @@ class UpdateRemoteShareOperation
|
|||||||
private fun isSuccess(status: Int): Boolean = status == HttpConstants.HTTP_OK
|
private fun isSuccess(status: Int): Boolean = status == HttpConstants.HTTP_OK
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
private val TAG = GetRemoteShareOperation::class.java.simpleName
|
private val TAG = GetRemoteShareOperation::class.java.simpleName
|
||||||
|
|
||||||
private const val PARAM_NAME = "name"
|
private const val PARAM_NAME = "name"
|
||||||
@ -191,6 +187,6 @@ class UpdateRemoteShareOperation
|
|||||||
private const val ENTITY_CONTENT_TYPE = "application/x-www-form-urlencoded"
|
private const val ENTITY_CONTENT_TYPE = "application/x-www-form-urlencoded"
|
||||||
private const val ENTITY_CHARSET = "UTF-8"
|
private const val ENTITY_CHARSET = "UTF-8"
|
||||||
|
|
||||||
private const val INITIAL_EXPIRATION_DATE_IN_MILLIS : Long = 0
|
private const val INITIAL_EXPIRATION_DATE_IN_MILLIS: Long = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user