Skip to content

Retrofit 1.9 to 2.0 #290

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Jun 12, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ ext {
espressoVersion = '2.2.1'
runnerVersion = '0.4.1'
rulesVersion = '0.4.1'
retrofitVersion = '1.9.0'
retrofitVersion = '2.0.2'
retrofitVersionLatest = '2.0.0'
okHttpVersion = '2.0.0'
flipTableVersion = '1.0.1'
Expand Down
3 changes: 2 additions & 1 deletion mifosng-android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -154,12 +154,13 @@ dependencies {


//Square dependencies
compile "com.squareup.retrofit:retrofit:$rootProject.retrofitVersion"
compile "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion"
compile "com.squareup.retrofit2:converter-gson:$rootProject.retrofitVersionLatest"
compile "com.squareup.retrofit2:adapter-rxjava:$rootProject.retrofitVersionLatest"
compile "com.squareup.okhttp:okhttp:$rootProject.okHttpVersion"
compile "com.squareup.okhttp:okhttp-urlconnection:$rootProject.okHttpVersion"
compile "com.jakewharton.fliptables:fliptables:$rootProject.flipTableVersion"
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'

compile 'javax.annotation:jsr250-api:1.0@jar'
compile 'com.squareup:otto:1.3.8'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,34 @@

import com.mifos.utils.PrefManager;

import retrofit.RequestInterceptor;
import java.io.IOException;

import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Request.Builder;
import okhttp3.Response;

/**
* @author fomenkoo
*/
public class ApiRequestInterceptor implements RequestInterceptor {
public class ApiRequestInterceptor implements Interceptor {

public static final String HEADER_TENANT = "Fineract-Platform-TenantId";
public static final String HEADER_AUTH = "Authorization";

public ApiRequestInterceptor() {
}

@Override
public void intercept(RequestFacade request) {
request.addHeader(HEADER_TENANT, PrefManager.getTenant());
public Response intercept(Chain chain) throws IOException {
Request chianrequest = chain.request();
Builder builder = chianrequest.newBuilder()
.header(HEADER_TENANT, PrefManager.getTenant());

if (PrefManager.isAuthenticated())
request.addHeader(HEADER_AUTH, PrefManager.getToken());
builder.header(HEADER_AUTH, PrefManager.getToken());

Request request = builder.build();
return chain.proceed(request);
}
}
81 changes: 48 additions & 33 deletions mifosng-android/src/main/java/com/mifos/api/BaseApiManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,22 @@

import java.util.Date;

import retrofit.Endpoint;
import retrofit.RestAdapter;
import retrofit.converter.GsonConverter;
import okhttp3.OkHttpClient;
import okhttp3.OkHttpClient.Builder;
import okhttp3.logging.HttpLoggingInterceptor;
import okhttp3.logging.HttpLoggingInterceptor.Level;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

/**
* @author fomenkoo
*/
public class BaseApiManager {


private final ApiEndpoint API_ENDPOINT = new ApiEndpoint();
private BaseUrl baseUrl = new BaseUrl();
private final String BASE_URL = baseUrl.getUrl();

private AuthService authApi;
private CenterService centerApi;
Expand All @@ -63,50 +68,60 @@ public class BaseApiManager {
public BaseApiManager() {
createAuthApi();

centerApi = createApi(CenterService.class, API_ENDPOINT);
accountsApi = createApi(ClientAccountsService.class, API_ENDPOINT);
clientsApi = createApi(ClientService.class, API_ENDPOINT);
dataTableApi = createApi(DataTableService.class, API_ENDPOINT);
loanApi = createApi(LoanService.class, API_ENDPOINT);
savingsApi = createApi(SavingsAccountService.class, API_ENDPOINT);
searchApi = createApi(SearchService.class, API_ENDPOINT);
gpsApi = createApi(GpsCoordinatesService.class, API_ENDPOINT);
groupApi = createApi(GroupService.class, API_ENDPOINT);
documentApi = createApi(DocumentService.class, API_ENDPOINT);
identifierApi = createApi(IdentifierService.class, API_ENDPOINT);
officeApi = createApi(OfficeService.class, API_ENDPOINT);
staffApi = createApi(StaffService.class, API_ENDPOINT);
surveyApi = createApi(SurveyService.class, API_ENDPOINT);
chargeApi = createApi(ChargeService.class, API_ENDPOINT);
createSavingsAccountService = createApi(CreateSavingsAccountService.class, API_ENDPOINT);
groupAccountsServiceApi = createApi(GroupAccountService.class, API_ENDPOINT);
centerApi = createApi(CenterService.class, BASE_URL);
accountsApi = createApi(ClientAccountsService.class, BASE_URL);
clientsApi = createApi(ClientService.class, BASE_URL);
dataTableApi = createApi(DataTableService.class, BASE_URL);
loanApi = createApi(LoanService.class, BASE_URL);
savingsApi = createApi(SavingsAccountService.class, BASE_URL);
searchApi = createApi(SearchService.class, BASE_URL);
gpsApi = createApi(GpsCoordinatesService.class, BASE_URL);
groupApi = createApi(GroupService.class, BASE_URL);
documentApi = createApi(DocumentService.class, BASE_URL);
identifierApi = createApi(IdentifierService.class, BASE_URL);
officeApi = createApi(OfficeService.class, BASE_URL);
staffApi = createApi(StaffService.class, BASE_URL);
surveyApi = createApi(SurveyService.class, BASE_URL);
chargeApi = createApi(ChargeService.class, BASE_URL);
createSavingsAccountService = createApi(CreateSavingsAccountService.class, BASE_URL);
groupAccountsServiceApi = createApi(GroupAccountService.class, BASE_URL);

}

public void setupEndpoint(String instanceUrl) {
API_ENDPOINT.updateInstanceUrl(instanceUrl);
baseUrl.updateInstanceUrl(instanceUrl);
}

private <T> T createApi(Class<T> clazz, Endpoint endpoint) {
public OkHttpClient getOkHttpClient() {
HttpLoggingInterceptor logger = new HttpLoggingInterceptor();
logger.setLevel(Level.BODY);
return new Builder()
.addInterceptor(logger)
.addInterceptor(new ApiRequestInterceptor())
.build();
}

private <T> T createApi(Class<T> clazz, String baseUrl) {

Gson gson = new GsonBuilder()
.registerTypeAdapter(Date.class, new JsonDateSerializer()).create();

return new RestAdapter.Builder()
.setEndpoint(endpoint)
.setRequestInterceptor(new ApiRequestInterceptor())
.setLogLevel(RestAdapter.LogLevel.FULL)
.setConverter(new GsonConverter(gson))
return new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(getOkHttpClient())
.build()
.create(clazz);
}

private void createAuthApi() {
authApi = new RestAdapter.Builder()
.setEndpoint(API_ENDPOINT)
.setConverter(new GsonConverter(new GsonBuilder().create()))
.setRequestInterceptor(new ApiRequestInterceptor())
.setLogLevel(RestAdapter.LogLevel.FULL)

authApi = new Retrofit.Builder()
.baseUrl(baseUrl.getUrl())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(getOkHttpClient())
.build()
.create(AuthService.class);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,30 @@

package com.mifos.api;

import retrofit.Endpoint;

/**
* @author fomenkoo
*/
public class ApiEndpoint implements Endpoint {
public class BaseUrl {

public static final String API_ENDPOINT = "demo.openmf.org";
public static final String API_PATH = "/fineract-provider/api/v1";
public static final String PROTOCOL_HTTPS = "https://";
public static final String API_ENDPOINT = "demo.openmf.org";
public static final String API_PATH = "/fineract-provider/api/v1/";
// "/" in the last of the base url always


private String url;

public void updateInstanceUrl(String instanceUrl) {
this.url = instanceUrl;
}

@Override

public String getUrl() {
if (url == null)
return PROTOCOL_HTTPS + API_ENDPOINT + API_PATH;
return url;
}

@Override
public String getName() {
return "mifos";
}
Expand Down
22 changes: 11 additions & 11 deletions mifosng-android/src/main/java/com/mifos/api/DataManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@
import javax.inject.Inject;
import javax.inject.Singleton;

import retrofit.client.Response;
import retrofit.mime.TypedFile;
import okhttp3.MultipartBody.Part;
import okhttp3.ResponseBody;
import rx.Observable;

/**
Expand Down Expand Up @@ -141,15 +141,15 @@ public Observable<Page<Charges>> getClientCharges(int id) {
return mBaseApiManager.getChargeApi().getListOfCharges(id);
}

public Observable<Response> getAllChargesV2(int clientId) {
public Observable<ResponseBody> getAllChargesV2(int clientId) {
return mBaseApiManager.getChargeApi().getAllChargesS(clientId);
}

public Observable<Charges> createCharges(int clientId, ChargesPayload payload) {
return mBaseApiManager.getChargeApi().createCharges(clientId, payload);
}

public Observable<Response> getAllChargesV3(int loanId) {
public Observable<ResponseBody> getAllChargesV3(int loanId) {
return mBaseApiManager.getChargeApi().getAllChargev3(loanId);
}

Expand Down Expand Up @@ -181,11 +181,11 @@ public Observable<Client> getClient(int id) {
return mBaseApiManager.getClientsApi().getClient(id);
}

public Observable<Response> uploadClientImage(int id, TypedFile image) {
return mBaseApiManager.getClientsApi().uploadClientImage(id, image);
public Observable<ResponseBody> uploadClientImage(int id, Part file) {
return mBaseApiManager.getClientsApi().uploadClientImage(id, file);
}

public Observable<Response> deleteClientImage(int clientId) {
public Observable<ResponseBody> deleteClientImage(int clientId) {
return mBaseApiManager.getClientsApi().deleteClientImage(clientId);
}

Expand Down Expand Up @@ -218,7 +218,7 @@ public Observable<List<Document>> getDocumentsList(String type, int id) {
}

public Observable<GenericResponse> createDocument(
String type, int id, String name, String desc, TypedFile file) {
String type, int id, String name, String desc, Part file) {
return mBaseApiManager.getDocumentApi().createDocument(type, id, name, desc, file);
}

Expand Down Expand Up @@ -330,15 +330,15 @@ public Observable<List<ProductLoans>> getAllLoans() {
return mBaseApiManager.getLoanApi().getAllLoans();
}

public Observable<Response> getGroupLoansAccountTemplate(int groupId, int productId) {
public Observable<ResponseBody> getGroupLoansAccountTemplate(int groupId, int productId) {
return mBaseApiManager.getLoanApi().getGroupLoansAccountTemplate(groupId, productId);
}

public Observable<Loans> createGroupLoansAccount(GroupLoanPayload loansPayload) {
return mBaseApiManager.getLoanApi().createGroupLoansAccount(loansPayload);
}

public Observable<Response> getLoansAccountTemplate(int clientId, int productId) {
public Observable<ResponseBody> getLoansAccountTemplate(int clientId, int productId) {
return mBaseApiManager.getLoanApi().getLoansAccountTemplate(clientId, productId);
}

Expand All @@ -350,7 +350,7 @@ public Observable<GenericResponse> approveLoan(int loanId, LoanApproval loanAppr
return mBaseApiManager.getLoanApi().approveLoanApplication(loanId, loanApproval);
}

public Observable<Response> getLoanTemplate(int loanId) {
public Observable<ResponseBody> getLoanTemplate(int loanId) {
return mBaseApiManager.getLoanApi().getLoanTemplate(loanId);
}

Expand Down
35 changes: 18 additions & 17 deletions mifosng-android/src/main/java/com/mifos/api/model/APIEndPoint.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,24 @@ public class APIEndPoint {

//This class contains all the Constants for API End Points

public static final String AUTHENTICATION = "/authentication";
public static final String CLIENTS = "/clients";
public static final String CHARGES = "/charges";
public static final String LOANS = "/loans";
public static final String CENTERS = "/centers";
public static final String SURVEYS = "/surveys";
public static final String SEARCH = "/search";
public static final String CREATESAVINGSACCOUNTS = "/savingsaccounts";
public static final String CREATESAVINGSPRODUCTS = "/savingsproducts";
public static final String CREATELOANSACCOUNTS = "/loans";
public static final String CREATELOANSPRODUCTS = "/loanproducts";
public static final String AUTHENTICATION = "authentication";
public static final String CHARGES = "charges";
public static final String CENTERS = "centers";
public static final String CLIENTS = "clients";
public static final String LOANS = "loans";
public static final String SURVEYS = "surveys";
public static final String SEARCH = "search";
public static final String CREATESAVINGSACCOUNTS = "savingsaccounts";
public static final String CREATESAVINGSPRODUCTS = "savingsproducts";
public static final String CREATELOANSACCOUNTS = "loans";
public static final String CREATELOANSPRODUCTS = "loanproducts";
public static final String DATATABLES = "datatables";
public static final String GROUPS = "groups";
public static final String DOCUMENTS = "documents";
public static final String IDENTIFIERS = "identifiers";
public static final String OFFICES = "offices";
public static final String STAFF = "staff";

public static final String SAVINGSACCOUNTS = "savingsaccounts";
public static final String RECURRING_ACCOUNTS = "recurringdepositaccounts";
public static final String DATATABLES = "/datatables";
public static final String GROUPS = "/groups";
public static final String DOCUMENTS = "/documents";
public static final String IDENTIFIERS = "/identifiers";
public static final String OFFICES = "/offices";
public static final String STAFF = "/staff";
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import com.mifos.api.model.APIEndPoint;
import com.mifos.objects.User;

import retrofit.http.POST;
import retrofit.http.Query;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
import java.util.List;
import java.util.Map;

import retrofit.http.Body;
import retrofit.http.GET;
import retrofit.http.POST;
import retrofit.http.Path;
import retrofit.http.Query;
import retrofit.http.QueryMap;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import rx.Observable;

/**
Expand All @@ -42,6 +42,7 @@ public interface CenterService {
Observable<List<Center>> getAllCentersInOffice(@Query("officeId") int officeId,
@QueryMap Map<String, Object> additionalParams);


@GET(APIEndPoint.CENTERS + "/{centerId}?associations=groupMembers")
Observable<CenterWithAssociations> getAllGroupsForCenter(@Path("centerId") int centerId);

Expand Down
Loading