Quellcode durchsuchen

Adds add device API call.

pull/4/head
Mushegh Sahakyan vor 4 Jahren
Ursprung
Commit
730209cc53
4 geänderte Dateien mit 42 neuen und 1 gelöschten Zeilen
  1. +4
    -0
      ui/src/main/java/com/wireguard/android/api/ApiConstants.java
  2. +4
    -0
      ui/src/main/java/com/wireguard/android/api/network/ClientApi.java
  3. +31
    -1
      ui/src/main/java/com/wireguard/android/repository/DataRepository.java
  4. +3
    -0
      ui/src/main/java/com/wireguard/android/viewmodel/LoginViewModel.java

+ 4
- 0
ui/src/main/java/com/wireguard/android/api/ApiConstants.java Datei anzeigen

@@ -4,6 +4,10 @@ public class ApiConstants {
public static final String BASE_URL = "https://jtest2.bubblesecure.com:1443/api/";
public static final String LOGIN_URL = "auth/login";
public static final String ALL_DEVICES_URL = "me/devices";
public static final String ADD_DEVICE_URL = "me/devices";
public static final String USERNAME = "username";
public static final String PASSWORD = "password";
public static final String HEADER = "X-Bubble-Session";
public static final String DEVICE_NAME = "name";
public static final String DEVICE_TYPE = "deviceType";
}

+ 4
- 0
ui/src/main/java/com/wireguard/android/api/network/ClientApi.java Datei anzeigen

@@ -12,6 +12,7 @@ import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.HeaderMap;
import retrofit2.http.POST;
import retrofit2.http.PUT;


/**
@@ -24,4 +25,7 @@ public interface ClientApi {

@GET(ApiConstants.ALL_DEVICES_URL)
Call<List<Device>> getAllDevices(@HeaderMap HashMap<String,String> header);

@PUT(ApiConstants.ADD_DEVICE_URL)
Call<Device> addDevice(@HeaderMap HashMap<String,String> header , @Body HashMap<String,String> body);
}

+ 31
- 1
ui/src/main/java/com/wireguard/android/repository/DataRepository.java Datei anzeigen

@@ -80,7 +80,7 @@ public class DataRepository {
@Override protected void createCall() {
final String token = UserStore.getInstance(context).getToken();
final HashMap<String,String> header = new HashMap<>();
header.put("X-Bubble-Session",token);
header.put(ApiConstants.HEADER,token);
clientApi.getAllDevices(header).enqueue(new Callback<List<Device>>() {
@Override public void onResponse(final Call<List<Device>> call, final Response<List<Device>> response) {
if (response.isSuccessful()) {
@@ -102,6 +102,36 @@ public class DataRepository {
}.getMutableLiveData();
}

public MutableLiveData<StatusResource<Device>> addDevice(String name ,Context context) {
return new NetworkBoundStatusResource<Device>() {

@Override protected void createCall() {
final String token = UserStore.getInstance(context).getToken();
final HashMap<String,String> header = new HashMap<>();
header.put(ApiConstants.HEADER,token);
final HashMap<String,String> body = new HashMap<>();
body.put(ApiConstants.DEVICE_NAME,name);
body.put(ApiConstants.DEVICE_TYPE,"android");
clientApi.addDevice(header, body).enqueue(new Callback<Device>() {
@Override public void onResponse(final Call<Device> call, final Response<Device> response) {
if (response.isSuccessful()) {
setMutableLiveData(StatusResource.success());
} else {
String errorMessage = createErrorMessage(call, response);
setMutableLiveData(StatusResource.error(errorMessage));
}
}

@Override public void onFailure(final Call<Device> call, final Throwable t) {
if (t instanceof Exception) {
setMutableLiveData(StatusResource.error(NO_INTERNET_CONNECTION));
}
}
});
}
}.getMutableLiveData();
}

private String createErrorMessage(Call call, retrofit2.Response response) {
return "Error: User agent: " + System.getProperty("http.agent") + ", Request body: " + call.request().body() + ", URL: " +
call.request().url() + ", Code: " + response.code() + ", Message: " +


+ 3
- 0
ui/src/main/java/com/wireguard/android/viewmodel/LoginViewModel.java Datei anzeigen

@@ -21,4 +21,7 @@ public class LoginViewModel extends ViewModel {
return DataRepository.getRepositoryInstance().getAllDevices(context);
}

public LiveData<StatusResource<Device>> addDevice(String name, Context context){
return DataRepository.getRepositoryInstance().addDevice(name,context);
}
}

Laden…
Abbrechen
Speichern