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

Unsharing wont return anything anymore since result object was not used

This commit is contained in:
Abel García de Prada 2022-12-15 15:26:37 +01:00
parent cb076aa6b9
commit fa7bfdd597
3 changed files with 10 additions and 36 deletions

View File

@ -36,13 +36,7 @@ import com.owncloud.android.lib.common.http.HttpConstants.VALUE_FORMAT
import com.owncloud.android.lib.common.http.methods.nonwebdav.DeleteMethod import com.owncloud.android.lib.common.http.methods.nonwebdav.DeleteMethod
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.resources.CommonOcsResponse
import com.owncloud.android.lib.resources.shares.responses.ShareItem
import com.squareup.moshi.JsonAdapter
import com.squareup.moshi.Moshi
import com.squareup.moshi.Types
import timber.log.Timber import timber.log.Timber
import java.lang.reflect.Type
import java.net.URL import java.net.URL
/** /**
@ -52,14 +46,10 @@ import java.net.URL
* @author David A. Velasco * @author David A. Velasco
* @author David González Verdugo * @author David González Verdugo
* @author Fernando Sanz Velasco * @author Fernando Sanz Velasco
*/
/**
* Constructor
* *
* @param remoteShareId Share ID * @param remoteShareId Share ID
*/ */
class RemoveRemoteShareOperation(private val remoteShareId: String) : RemoteOperation<ShareResponse>() { class RemoveRemoteShareOperation(private val remoteShareId: String) : RemoteOperation<Unit>() {
private fun buildRequestUri(baseUri: Uri) = private fun buildRequestUri(baseUri: Uri) =
baseUri.buildUpon() baseUri.buildUpon()
@ -68,24 +58,12 @@ class RemoveRemoteShareOperation(private val remoteShareId: String) : RemoteOper
.appendQueryParameter(PARAM_FORMAT, VALUE_FORMAT) .appendQueryParameter(PARAM_FORMAT, VALUE_FORMAT)
.build() .build()
private fun parseResponse(response: String): ShareResponse? {
val moshi = Moshi.Builder().build()
val listOfShareItemType: Type = Types.newParameterizedType(List::class.java, ShareItem::class.java)
val commonOcsType: Type = Types.newParameterizedType(CommonOcsResponse::class.java, listOfShareItemType)
val adapter: JsonAdapter<CommonOcsResponse<List<ShareItem>>> = moshi.adapter(commonOcsType)
return adapter.fromJson(response)?.ocs?.data?.let { listOfShareItems ->
ShareResponse(listOfShareItems.map { shareItem ->
shareItem.toRemoteShare()
})
}
}
private fun onResultUnsuccessful( private fun onResultUnsuccessful(
method: DeleteMethod, method: DeleteMethod,
response: String?, response: String?,
status: Int status: Int
): RemoteOperationResult<ShareResponse> { ): RemoteOperationResult<Unit> {
Timber.e("Failed response while unshare link ") Timber.e("Failed response while removing share ")
if (response != null) { if (response != null) {
Timber.e("*** status code: $status; response message: $response") Timber.e("*** status code: $status; response message: $response")
} else { } else {
@ -94,17 +72,14 @@ class RemoveRemoteShareOperation(private val remoteShareId: String) : RemoteOper
return RemoteOperationResult(method) return RemoteOperationResult(method)
} }
private fun onRequestSuccessful(response: String?): RemoteOperationResult<ShareResponse> { private fun onRequestSuccessful(response: String?): RemoteOperationResult<Unit> {
val result = RemoteOperationResult<ShareResponse>(RemoteOperationResult.ResultCode.OK) val result = RemoteOperationResult<Unit>(RemoteOperationResult.ResultCode.OK)
Timber.d("Successful response: $response") Timber.d("Successful response: $response")
result.data = parseResponse(response!!)
Timber.d("*** Unshare link completed ") Timber.d("*** Unshare link completed ")
return result return result
} }
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareResponse> { override fun run(client: OwnCloudClient): RemoteOperationResult<Unit> {
val requestUri = buildRequestUri(client.baseUri) val requestUri = buildRequestUri(client.baseUri)
val deleteMethod = DeleteMethod(URL(requestUri.toString())).apply { val deleteMethod = DeleteMethod(URL(requestUri.toString())).apply {
@ -129,7 +104,7 @@ class RemoveRemoteShareOperation(private val remoteShareId: String) : RemoteOper
private fun isSuccess(status: Int): Boolean = status == HttpConstants.HTTP_OK private fun isSuccess(status: Int): Boolean = status == HttpConstants.HTTP_OK
companion object { companion object {
//OCS Route // OCS Route
private const val OCS_ROUTE = "ocs/v2.php/apps/files_sharing/api/v1/shares" private const val OCS_ROUTE = "ocs/v2.php/apps/files_sharing/api/v1/shares"
} }
} }

View File

@ -58,5 +58,5 @@ interface ShareService : Service {
publicUpload: Boolean publicUpload: Boolean
): RemoteOperationResult<ShareResponse> ): RemoteOperationResult<ShareResponse>
fun deleteShare(remoteId: String): RemoteOperationResult<ShareResponse> fun deleteShare(remoteId: String): RemoteOperationResult<Unit>
} }

View File

@ -36,8 +36,7 @@ import com.owncloud.android.lib.resources.shares.ShareType
import com.owncloud.android.lib.resources.shares.UpdateRemoteShareOperation import com.owncloud.android.lib.resources.shares.UpdateRemoteShareOperation
import com.owncloud.android.lib.resources.shares.services.ShareService import com.owncloud.android.lib.resources.shares.services.ShareService
class OCShareService(override val client: OwnCloudClient) : class OCShareService(override val client: OwnCloudClient) : ShareService {
ShareService {
override fun getShares( override fun getShares(
remoteFilePath: String, remoteFilePath: String,
reshares: Boolean, reshares: Boolean,
@ -90,7 +89,7 @@ class OCShareService(override val client: OwnCloudClient) :
this.retrieveShareDetails = true this.retrieveShareDetails = true
}.execute(client) }.execute(client)
override fun deleteShare(remoteId: String): RemoteOperationResult<ShareResponse> = override fun deleteShare(remoteId: String): RemoteOperationResult<Unit> =
RemoveRemoteShareOperation( RemoveRemoteShareOperation(
remoteId remoteId
).execute(client) ).execute(client)