Skip to content

Commit 9caf896

Browse files
committed
Route wordpress-rs request errors to AppLog
Bump wordpress-rs to the PR #1398 build that adds RequestErrorLogger, and wire RequestErrorLogger { AppLog.e(T.API, it) } into every WpComApiClient and WpApiClient construction site. Failed requests are now logged under the API tag (and crash-reporting breadcrumbs) instead of going unlogged.
1 parent bef28be commit 9caf896

5 files changed

Lines changed: 20 additions & 6 deletions

File tree

WordPress/src/main/java/org/wordpress/android/networking/restapi/WpComApiClientProvider.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package org.wordpress.android.networking.restapi
22

33
import okhttp3.OkHttpClient
44
import org.wordpress.android.fluxc.network.rest.wpapi.rs.WpNetworkAvailabilityProvider
5+
import org.wordpress.android.util.AppLog
6+
import rs.wordpress.api.kotlin.RequestErrorLogger
57
import rs.wordpress.api.kotlin.WpComApiClient
68
import rs.wordpress.api.kotlin.WpHttpClient
79
import rs.wordpress.api.kotlin.WpRequestExecutor
@@ -29,7 +31,8 @@ class WpComApiClientProvider @Inject constructor(
2931
networkAvailabilityProvider = networkAvailabilityProvider
3032
),
3133
authProvider = WpAuthenticationProvider.staticWithAuth(WpAuthentication.Bearer(token = accessToken)
32-
)
34+
),
35+
errorLogger = RequestErrorLogger { AppLog.e(AppLog.T.API, it) }
3336
)
3437
}
3538
}

WordPress/src/main/java/org/wordpress/android/ui/dataview/DataViewViewModel.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import org.wordpress.android.util.NetworkUtilsWrapper
2424
import org.wordpress.android.fluxc.network.TrackNetworkRequestsInterceptor
2525
import org.wordpress.android.fluxc.network.rest.wpapi.rs.WpNetworkAvailabilityProvider
2626
import org.wordpress.android.viewmodel.ScopedViewModel
27+
import rs.wordpress.api.kotlin.RequestErrorLogger
2728
import rs.wordpress.api.kotlin.WpComApiClient
2829
import uniffi.wp_api.WpApiParamOrder
2930
import uniffi.wp_api.WpAuthentication
@@ -91,7 +92,8 @@ open class DataViewViewModel @Inject constructor(
9192
}
9293
),
9394
interceptors = listOf(trackNetworkRequestsInterceptor),
94-
networkAvailabilityProvider = networkAvailabilityProvider
95+
networkAvailabilityProvider = networkAvailabilityProvider,
96+
errorLogger = RequestErrorLogger { AppLog.e(AppLog.T.API, it) }
9597
)
9698
}
9799

WordPress/src/main/java/org/wordpress/android/ui/subscribers/AddSubscribersViewModel.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.wordpress.android.ui.mysite.SelectedSiteRepository
1717
import org.wordpress.android.util.AppLog
1818
import org.wordpress.android.util.ToastUtilsWrapper
1919
import org.wordpress.android.viewmodel.ScopedViewModel
20+
import rs.wordpress.api.kotlin.RequestErrorLogger
2021
import rs.wordpress.api.kotlin.WpComApiClient
2122
import rs.wordpress.api.kotlin.WpRequestResult
2223
import uniffi.wp_api.AddSubscribersParams
@@ -53,7 +54,8 @@ class AddSubscribersViewModel @Inject constructor(
5354
WpAuthentication.Bearer(token = accountStore.accessToken!!)
5455
),
5556
interceptors = listOf(trackNetworkRequestsInterceptor),
56-
networkAvailabilityProvider = networkAvailabilityProvider
57+
networkAvailabilityProvider = networkAvailabilityProvider,
58+
errorLogger = RequestErrorLogger { AppLog.e(AppLog.T.API, it) }
5759
)
5860
}
5961

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ wellsql = '2.0.0'
101101
wordpress-aztec = 'v2.1.4'
102102
wordpress-lint = '2.2.0'
103103
wordpress-persistent-edittext = '1.0.2'
104-
wordpress-rs = 'trunk-96105487c29b4205f25ff722ec80704ef8baa263'
104+
wordpress-rs = 'trunk-97d62ffff2983c0c71f2bbf95254156eba9aa57c'
105105
wordpress-utils = '3.14.0'
106106
automattic-ucrop = '2.2.11'
107107
zendesk = '5.5.3'

libs/fluxc/src/main/java/org/wordpress/android/fluxc/network/rest/wpapi/rs/WpApiClientProvider.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import org.wordpress.android.fluxc.model.SiteModel
99
import org.wordpress.android.fluxc.module.OkHttpClientQualifiers
1010
import org.wordpress.android.fluxc.network.rest.wpapi.applicationpasswords.WpAppNotifierHandler
1111
import org.wordpress.android.fluxc.store.AccountStore
12+
import org.wordpress.android.util.AppLog
13+
import rs.wordpress.api.kotlin.RequestErrorLogger
1214
import rs.wordpress.api.kotlin.WpApiClient
1315
import rs.wordpress.api.kotlin.WpHttpClient
1416
import rs.wordpress.api.kotlin.WpRequestExecutor
@@ -36,6 +38,8 @@ class WpApiClientProvider @Inject constructor(
3638
private val wpComClients = mutableMapOf<Long, WpApiClient>()
3739
private val selfHostedClients = mutableMapOf<Int, WpApiClient>()
3840

41+
private val errorLogger = RequestErrorLogger { AppLog.e(AppLog.T.API, it) }
42+
3943
/** Removes all cached API clients (e.g. on sign-out). */
4044
@Synchronized
4145
fun clearAllClients() {
@@ -116,6 +120,7 @@ class WpApiClientProvider @Inject constructor(
116120
)
117121
}
118122
},
123+
errorLogger = errorLogger,
119124
)
120125
}
121126

@@ -155,7 +160,8 @@ class WpApiClientProvider @Inject constructor(
155160
override suspend fun requestedWithInvalidAuthentication(requestUrl: String) {
156161
wpAppNotifierHandler.notifyRequestedWithInvalidAuthentication(site)
157162
}
158-
}
163+
},
164+
errorLogger = errorLogger
159165
)
160166
return client
161167
}
@@ -175,7 +181,8 @@ class WpApiClientProvider @Inject constructor(
175181
override suspend fun requestedWithInvalidAuthentication(requestUrl: String) {
176182
wpAppNotifierHandler.notifyRequestedWithInvalidAuthentication(site)
177183
}
178-
}
184+
},
185+
errorLogger = errorLogger
179186
)
180187
}
181188
}

0 commit comments

Comments
 (0)