Skip to content
This repository was archived by the owner on Sep 17, 2025. It is now read-only.

Commit 2292ea5

Browse files
committed
Custom attribuet names in rest
1 parent 7bb066b commit 2292ea5

1 file changed

Lines changed: 20 additions & 5 deletions

File tree

rest-fetcher/src/main/java/com/ackee/versionupdatehandler/RestVersionFetcher.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.ackee.versioupdatehandler.model.VersionsConfiguration;
77
import com.google.gson.FieldNamingPolicy;
88
import com.google.gson.GsonBuilder;
9+
import com.google.gson.JsonObject;
910

1011
import okhttp3.OkHttpClient;
1112
import okhttp3.logging.HttpLoggingInterceptor;
@@ -16,6 +17,8 @@
1617
import rx.Single;
1718
import rx.functions.Func1;
1819

20+
import static com.ackee.versionupdatehandler.RestVersionFetcher.ApiDescription.api;
21+
1922
/**
2023
* Class that fetches version configuration from rest api
2124
* <p>
@@ -26,28 +29,40 @@
2629
**/
2730
public class RestVersionFetcher implements VersionFetcher {
2831
public static final String TAG = RestVersionFetcher.class.getName();
29-
private ApiDescription api = null;
3032

3133
interface ApiDescription {
3234
@GET("app_version")
33-
public Single<BasicVersionsConfiguration> getVersions();
35+
public Single<JsonObject> getVersions();
3436
}
3537

38+
public static final String MINIMAL_VERSION = "minimal_version_android";
39+
public static final String CURRENT_VERSION = "current_version_android";
40+
41+
String minimalAttributeName;
42+
String currentAttributeName;
3643
String baseUrl;
3744

45+
private ApiDescription api = null;
46+
3847
public RestVersionFetcher(String baseUrl) {
48+
this(baseUrl, MINIMAL_VERSION, CURRENT_VERSION);
49+
}
50+
51+
public RestVersionFetcher(String baseUrl, String currentAttributeName, String minimalAttributeName) {
3952
this.baseUrl = baseUrl;
53+
this.currentAttributeName = currentAttributeName;
54+
this.minimalAttributeName = minimalAttributeName;
4055
}
4156

4257
@Override
4358
public Single<VersionsConfiguration> fetch() {
4459
return getApi()
4560
.getVersions()
4661
// Single<BasicVersionsConfiguration> is not subtype of Single<VersionsConfiguration> :(
47-
.map(new Func1<BasicVersionsConfiguration, VersionsConfiguration>() {
62+
.map(new Func1<JsonObject, VersionsConfiguration>() {
4863
@Override
49-
public VersionsConfiguration call(BasicVersionsConfiguration basicVersionsConfiguration) {
50-
return basicVersionsConfiguration;
64+
public VersionsConfiguration call(JsonObject json) {
65+
return new BasicVersionsConfiguration(json.get(minimalAttributeName).getAsLong(), json.get(currentAttributeName).getAsLong());
5166
}
5267
})
5368
.onErrorResumeNext(new Func1<Throwable, Single<? extends VersionsConfiguration>>() {

0 commit comments

Comments
 (0)