diff options
Diffstat (limited to 'Software/Android_Studio/Tango.Web/src/main/java')
2 files changed, 59 insertions, 0 deletions
diff --git a/Software/Android_Studio/Tango.Web/src/main/java/com/twine/tango/web/APIFactory.java b/Software/Android_Studio/Tango.Web/src/main/java/com/twine/tango/web/APIFactory.java new file mode 100644 index 000000000..d244a99c8 --- /dev/null +++ b/Software/Android_Studio/Tango.Web/src/main/java/com/twine/tango/web/APIFactory.java @@ -0,0 +1,39 @@ +package com.twine.tango.web; + +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import retrofit2.Retrofit; +import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; +import retrofit2.converter.protobuf.ProtoConverterFactory; + + +public class APIFactory +{ + private String base_url; + + public APIFactory(String base_url) + { + this.base_url = base_url; + } + + public ISynchronizationAPI getSynchronizationAPI() + { + return createAPI(ISynchronizationAPI.class, 60); + } + + private <T> T createAPI(Class<?> cls, int timeout) + { + Retrofit retrofit = new Retrofit.Builder() + .baseUrl(base_url) + .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + .addConverterFactory(ProtoConverterFactory.create()) + .client(new OkHttpClient.Builder() + .readTimeout(timeout, TimeUnit.SECONDS) + .writeTimeout(timeout, TimeUnit.SECONDS) + .build()) + .build(); + + return (T) retrofit.create(cls); + } +} diff --git a/Software/Android_Studio/Tango.Web/src/main/java/com/twine/tango/web/ISynchronizationAPI.java b/Software/Android_Studio/Tango.Web/src/main/java/com/twine/tango/web/ISynchronizationAPI.java new file mode 100644 index 000000000..3a3d34c3a --- /dev/null +++ b/Software/Android_Studio/Tango.Web/src/main/java/com/twine/tango/web/ISynchronizationAPI.java @@ -0,0 +1,20 @@ +package com.twine.tango.web; + +import com.twine.tango.pmr.stubs.CalculateRequestOuterClass.CalculateRequest; +import com.twine.tango.pmr.stubs.CalculateResponseOuterClass.CalculateResponse; +import com.twine.tango.pmr.synchronization.SynchronizeDBRequestOuterClass.SynchronizeDBRequest; +import com.twine.tango.pmr.synchronization.SynchronizeDBResponseOuterClass.SynchronizeDBResponse; + +import io.reactivex.Observable; +import retrofit2.http.Body; +import retrofit2.http.POST; + +/** + * Created by Roy on 11/30/2017. + */ + +public interface ISynchronizationAPI +{ + @POST("Synchronization/Synchronize") + Observable<SynchronizeDBResponse> synchronize(@Body SynchronizeDBRequest request); +} |
