1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-08 08:26:10 +00:00

Use new flag to retrieve more information about just updated shares

This commit is contained in:
davigonz 2019-04-17 17:58:04 +02:00
parent 4849be5daa
commit 59048e8e7a
2 changed files with 30 additions and 25 deletions

View File

@ -81,10 +81,6 @@ class CreateRemoteShareOperation(
var publicUpload: Boolean = false // Upload permissions for the public link (only folders) var publicUpload: Boolean = false // Upload permissions for the public link (only folders)
init {
retrieveShareDetails = false // defaults to false for backwards compatibility
}
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> { override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
var result: RemoteOperationResult<ShareParserResult> var result: RemoteOperationResult<ShareParserResult>
@ -140,7 +136,6 @@ class CreateRemoteShareOperation(
result = parser.parse(postMethod.responseBodyAsString) result = parser.parse(postMethod.responseBodyAsString)
if (result.isSuccess && retrieveShareDetails) { if (result.isSuccess && retrieveShareDetails) {
// 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]
val getInfo = GetRemoteShareOperation( val getInfo = GetRemoteShareOperation(

View File

@ -59,6 +59,15 @@ class UpdateRemoteShareOperation
private val remoteId: Long private val remoteId: Long
) : RemoteOperation<ShareParserResult>() { ) : RemoteOperation<ShareParserResult>() {
/**
* Name to update in Share resource. Ignored by servers previous to version 10.0.0
*
* @param name Name to set to the target share.
* Empty string clears the current name.
* Null results in no update applied to the name.
*/
var name: String? = null
/** /**
* Password to update in Share resource. * Password to update in Share resource.
* *
@ -94,14 +103,7 @@ class UpdateRemoteShareOperation
*/ */
var publicUpload: Boolean? = null var publicUpload: Boolean? = null
/** var retrieveShareDetails = false // To retrieve more info about the just updated share
* Name to update in Share resource. Ignored by servers previous to version 10.0.0
*
* @param name Name to set to the target share.
* Empty string clears the current name.
* Null results in no update applied to the name.
*/
var name: String? = null
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> { override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
var result: RemoteOperationResult<ShareParserResult> var result: RemoteOperationResult<ShareParserResult>
@ -111,7 +113,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) {
@ -148,21 +150,29 @@ class UpdateRemoteShareOperation
putMethod.setRequestBody(formBodyBuilder.build()) putMethod.setRequestBody(formBodyBuilder.build())
putMethod.setRequestHeader(HttpConstants.CONTENT_TYPE_HEADER, HttpConstants.CONTENT_TYPE_URLENCODED_UTF8) putMethod.setRequestHeader(HttpConstants.CONTENT_TYPE_HEADER, HttpConstants.CONTENT_TYPE_URLENCODED_UTF8)
putMethod.addRequestHeader(RemoteOperation.OCS_API_HEADER, RemoteOperation.OCS_API_HEADER_VALUE) putMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE)
val status = client.executeHttpMethod(putMethod) val status = client.executeHttpMethod(putMethod)
if (isSuccess(status)) { if(!isSuccess(status)){
// Parse xml response return RemoteOperationResult(putMethod)
val parser = ShareToRemoteOperationResultParser( }
ShareXMLParser()
)
parser.ownCloudVersion = client.ownCloudVersion
parser.serverBaseUri = client.baseUri
result = parser.parse(putMethod.responseBodyAsString)
} else { // Parse xml response
result = RemoteOperationResult(putMethod) val parser = ShareToRemoteOperationResultParser(
ShareXMLParser()
)
parser.ownCloudVersion = client.ownCloudVersion
parser.serverBaseUri = client.baseUri
result = parser.parse(putMethod.responseBodyAsString)
if (result.isSuccess && retrieveShareDetails) {
// retrieve more info - PUT only returns the index of the new share
val emptyShare = result.data.shares[0]
val getInfo = GetRemoteShareOperation(
emptyShare.id
)
result = getInfo.execute(client)
} }
} catch (e: Exception) { } catch (e: Exception) {