Remove unused SendRelationWorker and related API call (3588)
This commit is contained in:
parent
e0a6e82661
commit
36e4d3ec69
|
@ -0,0 +1 @@
|
||||||
|
Remove unused SendRelationWorker and related API call (3588)
|
|
@ -154,7 +154,6 @@ enum class ApiPath(val path: String, val method: String) {
|
||||||
SEND_STATE_EVENT(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state/{state_event_type}", "PUT"),
|
SEND_STATE_EVENT(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state/{state_event_type}", "PUT"),
|
||||||
SEND_STATE_EVENT_WITH_STATE_KEY(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state/{state_event_type}/{state_key}", "PUT"),
|
SEND_STATE_EVENT_WITH_STATE_KEY(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state/{state_event_type}/{state_key}", "PUT"),
|
||||||
GET_ROOM_STATE(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state", "GET"),
|
GET_ROOM_STATE(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state", "GET"),
|
||||||
SEND_RELATION(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/send_relation/{parent_id}/{relation_type}/{event_type}", "POST"),
|
|
||||||
GET_RELATIONS(NetworkConstants.URI_API_PREFIX_PATH_UNSTABLE + "rooms/{roomId}/relations/{eventId}/{relationType}/{eventType}", "GET"),
|
GET_RELATIONS(NetworkConstants.URI_API_PREFIX_PATH_UNSTABLE + "rooms/{roomId}/relations/{eventId}/{relationType}/{eventType}", "GET"),
|
||||||
JOIN_ROOM(NetworkConstants.URI_API_PREFIX_PATH_R0 + "join/{roomIdOrAlias}", "POST"),
|
JOIN_ROOM(NetworkConstants.URI_API_PREFIX_PATH_R0 + "join/{roomIdOrAlias}", "POST"),
|
||||||
LEAVE_ROOM(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/leave", "POST"),
|
LEAVE_ROOM(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/leave", "POST"),
|
||||||
|
|
|
@ -46,7 +46,6 @@ import org.matrix.android.sdk.internal.session.profile.ProfileModule
|
||||||
import org.matrix.android.sdk.internal.session.pushers.AddPusherWorker
|
import org.matrix.android.sdk.internal.session.pushers.AddPusherWorker
|
||||||
import org.matrix.android.sdk.internal.session.pushers.PushersModule
|
import org.matrix.android.sdk.internal.session.pushers.PushersModule
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomModule
|
import org.matrix.android.sdk.internal.session.room.RoomModule
|
||||||
import org.matrix.android.sdk.internal.session.room.relation.SendRelationWorker
|
|
||||||
import org.matrix.android.sdk.internal.session.room.send.MultipleEventSendingDispatcherWorker
|
import org.matrix.android.sdk.internal.session.room.send.MultipleEventSendingDispatcherWorker
|
||||||
import org.matrix.android.sdk.internal.session.room.send.RedactEventWorker
|
import org.matrix.android.sdk.internal.session.room.send.RedactEventWorker
|
||||||
import org.matrix.android.sdk.internal.session.room.send.SendEventWorker
|
import org.matrix.android.sdk.internal.session.room.send.SendEventWorker
|
||||||
|
@ -115,8 +114,6 @@ internal interface SessionComponent {
|
||||||
|
|
||||||
fun inject(worker: SendEventWorker)
|
fun inject(worker: SendEventWorker)
|
||||||
|
|
||||||
fun inject(worker: SendRelationWorker)
|
|
||||||
|
|
||||||
fun inject(worker: MultipleEventSendingDispatcherWorker)
|
fun inject(worker: MultipleEventSendingDispatcherWorker)
|
||||||
|
|
||||||
fun inject(worker: RedactEventWorker)
|
fun inject(worker: RedactEventWorker)
|
||||||
|
|
|
@ -216,22 +216,6 @@ internal interface RoomAPI {
|
||||||
@GET(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state")
|
@GET(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/state")
|
||||||
suspend fun getRoomState(@Path("roomId") roomId: String): List<Event>
|
suspend fun getRoomState(@Path("roomId") roomId: String): List<Event>
|
||||||
|
|
||||||
/**
|
|
||||||
* Send a relation event to a room.
|
|
||||||
*
|
|
||||||
* @param txId the transaction Id
|
|
||||||
* @param roomId the room id
|
|
||||||
* @param eventType the event type
|
|
||||||
* @param content the event content
|
|
||||||
*/
|
|
||||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/send_relation/{parent_id}/{relation_type}/{event_type}")
|
|
||||||
suspend fun sendRelation(@Path("roomId") roomId: String,
|
|
||||||
@Path("parent_id") parentId: String,
|
|
||||||
@Path("relation_type") relationType: String,
|
|
||||||
@Path("event_type") eventType: String,
|
|
||||||
@Body content: Content?
|
|
||||||
): SendResponse
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paginate relations for event based in normal topological order
|
* Paginate relations for event based in normal topological order
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.matrix.android.sdk.internal.session.room.relation
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import androidx.work.WorkerParameters
|
|
||||||
import com.squareup.moshi.JsonClass
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.toModel
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.relation.ReactionContent
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.relation.ReactionInfo
|
|
||||||
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
|
||||||
import org.matrix.android.sdk.internal.session.SessionComponent
|
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
|
||||||
import org.matrix.android.sdk.internal.session.room.send.LocalEchoRepository
|
|
||||||
import org.matrix.android.sdk.internal.worker.SessionSafeCoroutineWorker
|
|
||||||
import org.matrix.android.sdk.internal.worker.SessionWorkerParams
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
// TODO This is not used. Delete?
|
|
||||||
internal class SendRelationWorker(context: Context, params: WorkerParameters) :
|
|
||||||
SessionSafeCoroutineWorker<SendRelationWorker.Params>(context, params, Params::class.java) {
|
|
||||||
|
|
||||||
@JsonClass(generateAdapter = true)
|
|
||||||
internal data class Params(
|
|
||||||
override val sessionId: String,
|
|
||||||
val roomId: String,
|
|
||||||
val eventId: String,
|
|
||||||
val relationType: String? = null,
|
|
||||||
override val lastFailureMessage: String? = null
|
|
||||||
) : SessionWorkerParams
|
|
||||||
|
|
||||||
@Inject lateinit var roomAPI: RoomAPI
|
|
||||||
@Inject lateinit var globalErrorReceiver: GlobalErrorReceiver
|
|
||||||
@Inject lateinit var localEchoRepository: LocalEchoRepository
|
|
||||||
|
|
||||||
override fun injectWith(injector: SessionComponent) {
|
|
||||||
injector.inject(this)
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun doSafeWork(params: Params): Result {
|
|
||||||
val localEvent = localEchoRepository.getUpToDateEcho(params.eventId)
|
|
||||||
if (localEvent?.eventId == null) {
|
|
||||||
return Result.failure()
|
|
||||||
}
|
|
||||||
val relationContent = localEvent.content.toModel<ReactionContent>()
|
|
||||||
?: return Result.failure()
|
|
||||||
val relatedEventId = relationContent.relatesTo?.eventId ?: return Result.failure()
|
|
||||||
val relationType = (relationContent.relatesTo as? ReactionInfo)?.type ?: params.relationType
|
|
||||||
?: return Result.failure()
|
|
||||||
return try {
|
|
||||||
sendRelation(params.roomId, relationType, relatedEventId, localEvent)
|
|
||||||
Result.success()
|
|
||||||
} catch (exception: Throwable) {
|
|
||||||
when (exception) {
|
|
||||||
is Failure.NetworkConnection -> Result.retry()
|
|
||||||
else -> {
|
|
||||||
// TODO mark as failed to send?
|
|
||||||
// always return success, or the chain will be stuck for ever!
|
|
||||||
Result.success()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun buildErrorParams(params: Params, message: String): Params {
|
|
||||||
return params.copy(lastFailureMessage = params.lastFailureMessage ?: message)
|
|
||||||
}
|
|
||||||
|
|
||||||
private suspend fun sendRelation(roomId: String, relationType: String, relatedEventId: String, localEvent: Event) {
|
|
||||||
executeRequest(globalErrorReceiver) {
|
|
||||||
roomAPI.sendRelation(
|
|
||||||
roomId = roomId,
|
|
||||||
parentId = relatedEventId,
|
|
||||||
relationType = relationType,
|
|
||||||
eventType = localEvent.type!!,
|
|
||||||
content = localEvent.content
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue