Skip to content

Commit

Permalink
Merge pull request #817 from wordpress-mobile/feature/add_rewind_id_t…
Browse files Browse the repository at this point in the history
…o_rewind_response

Add rewind ID to rewind response
  • Loading branch information
0nko committed May 30, 2018
2 parents 52eacc4 + 231ea5e commit 0d380ad
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 10 deletions.
Expand Up @@ -167,13 +167,38 @@ class ActivityLogStoreTest {

@Test
fun emitsRewindResult() {
val rewindId = "rewindId"
val restoreId = "restoreId"
val payload = ActivityLogStore.RewindResultPayload(restoreId, siteModel)
val payload = ActivityLogStore.RewindResultPayload(rewindId, restoreId, siteModel)
val action = ActivityLogActionBuilder.newRewindResultAction(payload)

activityLogStore.onAction(action)

val expectedChangeEvent = ActivityLogStore.OnRewind(restoreId, ActivityLogAction.REWIND_RESULT)
val expectedChangeEvent = ActivityLogStore.OnRewind(rewindId, restoreId, ActivityLogAction.REWIND_RESULT)
verify(dispatcher).emitChange(eq(expectedChangeEvent))
}

@Test
fun returnsActivityLogItemFromDbByRewindId() {
val rewindId = "rewindId"
val activityLogModel = mock<ActivityLogModel>()
whenever(activityLogSqlUtils.getActivityByRewindId(rewindId)).thenReturn(activityLogModel)

val returnedItem = activityLogStore.getActivityLogItemByRewindId(rewindId)

assertEquals(activityLogModel, returnedItem)
verify(activityLogSqlUtils).getActivityByRewindId(rewindId)
}

@Test
fun returnsActivityLogItemFromDbByActivityId() {
val rewindId = "activityId"
val activityLogModel = mock<ActivityLogModel>()
whenever(activityLogSqlUtils.getActivityByActivityId(rewindId)).thenReturn(activityLogModel)

val returnedItem = activityLogStore.getActivityLogItemByActivityId(rewindId)

assertEquals(activityLogModel, returnedItem)
verify(activityLogSqlUtils).getActivityByActivityId(rewindId)
}
}
Expand Up @@ -90,15 +90,15 @@ constructor(
val url = WPCOMREST.activity_log.site(site.siteId).rewind.to.rewind(rewindId).urlV1
val request = wpComGsonRequestBuilder.buildPostRequest(url, mapOf(), RewindResponse::class.java,
{ response ->
val payload = ActivityLogStore.RewindResultPayload(response.restore_id, site)
val payload = ActivityLogStore.RewindResultPayload(rewindId, response.restore_id, site)
dispatcher.dispatch(ActivityLogActionBuilder.newRewindResultAction(payload))
},
{ networkError ->
val error = ActivityLogStore.RewindError(genericToError(networkError,
RewindErrorType.GENERIC_ERROR,
RewindErrorType.INVALID_RESPONSE,
RewindErrorType.AUTHORIZATION_REQUIRED), networkError.message)
val payload = ActivityLogStore.RewindResultPayload(error, site)
val payload = ActivityLogStore.RewindResultPayload(error, rewindId, site)
dispatcher.dispatch(ActivityLogActionBuilder.newRewindResultAction(payload))
})
add(request)
Expand Down
Expand Up @@ -53,6 +53,26 @@ class ActivityLogSqlUtils
.map { it.build() }
}

fun getActivityByRewindId(rewindId: String): ActivityLogModel? {
return WellSql.select(ActivityLogBuilder::class.java)
.where()
.equals(ActivityLogTable.REWIND_ID, rewindId)
.endWhere()
.asModel
.firstOrNull()
?.build()
}

fun getActivityByActivityId(activityId: String): ActivityLogModel? {
return WellSql.select(ActivityLogBuilder::class.java)
.where()
.equals(ActivityLogTable.ACTIVITY_ID, activityId)
.endWhere()
.asModel
.firstOrNull()
?.build()
}

fun deleteActivityLog(): Int {
return WellSql.delete(ActivityLogBuilder::class.java).execute()
}
Expand Down
Expand Up @@ -47,6 +47,14 @@ class ActivityLogStore
return activityLogSqlUtils.getActivitiesForSite(site, order)
}

fun getActivityLogItemByRewindId(rewindId: String): ActivityLogModel? {
return activityLogSqlUtils.getActivityByRewindId(rewindId)
}

fun getActivityLogItemByActivityId(activityId: String): ActivityLogModel? {
return activityLogSqlUtils.getActivityByActivityId(activityId)
}

fun getRewindStatusForSite(site: SiteModel): RewindStatusModel? {
return activityLogSqlUtils.getRewindStatusForSite(site)
}
Expand Down Expand Up @@ -98,9 +106,9 @@ class ActivityLogStore

private fun emitRewindResult(payload: RewindResultPayload, action: ActivityLogAction) {
if (payload.error != null) {
emitChange(OnRewind(payload.error, action))
emitChange(OnRewind(payload.rewindId, payload.error, action))
} else {
emitChange(OnRewind(restoreId = payload.restoreId, causeOfChange = action))
emitChange(OnRewind(rewindId = payload.rewindId, restoreId = payload.restoreId, causeOfChange = action))
}
}

Expand Down Expand Up @@ -128,11 +136,12 @@ class ActivityLogStore
}

data class OnRewind(
val rewindId: String,
val restoreId: String? = null,
var causeOfChange: ActivityLogAction
) : Store.OnChanged<RewindError>() {
constructor(error: RewindError, causeOfChange: ActivityLogAction) :
this(restoreId = null, causeOfChange = causeOfChange) {
constructor(rewindId: String, error: RewindError, causeOfChange: ActivityLogAction) :
this(rewindId = rewindId, restoreId = null, causeOfChange = causeOfChange) {
this.error = error
}
}
Expand Down Expand Up @@ -174,8 +183,12 @@ class ActivityLogStore
}
}

class RewindResultPayload(val restoreId: String? = null, val site: SiteModel) : Payload<RewindError>() {
constructor(error: RewindError, site: SiteModel) : this(site = site) {
class RewindResultPayload(
val rewindId: String,
val restoreId: String? = null,
val site: SiteModel
) : Payload<RewindError>() {
constructor(error: RewindError, rewindId: String, site: SiteModel) : this(rewindId = rewindId, site = site) {
this.error = error
}
}
Expand Down

0 comments on commit 0d380ad

Please sign in to comment.