Browse Source

Refactor /TagDetectedActivityAdmin.java avec okHttp v0.1

master
art.dambrine 5 years ago
parent
commit
6e7ca89253
  1. 68
      app/src/main/java/com/speculos/myapplicationoc/TagDetectedActivityAdmin.java

68
app/src/main/java/com/speculos/myapplicationoc/TagDetectedActivityAdmin.java

@ -2,6 +2,7 @@ package com.speculos.myapplicationoc;
import android.app.Activity; import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
@ -10,6 +11,9 @@ import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException; import java.io.IOException;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -21,12 +25,10 @@ import okhttp3.Response;
public class TagDetectedActivityAdmin extends Activity { public class TagDetectedActivityAdmin extends Activity {
String hexa_id, mail, username; String hexa_id, mail, username, srvURL;
// recuperation de MyApplication contenant les variables globales // recuperation de MyApplication contenant les variables globales
// MyApplication myApplication = (MyApplication) getApplication(); // MyApplication myApplication = (MyApplication) getApplication();
String srvURL;
// Temporaire // Temporaire
// String nfcId = "azerty"; // String nfcId = "azerty";
@ -82,28 +84,51 @@ public class TagDetectedActivityAdmin extends Activity {
Toast.makeText(TagDetectedActivityAdmin.this, "Création de compte NFC Cashless, mail:"+mail+" name:"+username+" bracelet:"+hexa_id, Toast.LENGTH_LONG).show(); Toast.makeText(TagDetectedActivityAdmin.this, "Création de compte NFC Cashless, mail:"+mail+" name:"+username+" bracelet:"+hexa_id, Toast.LENGTH_LONG).show();
String response = ""; Response responseHttp = null;
try { try {
response = APICommandes.postMethod(srvURL + "/api/clients","{\"name\": \"" + username + "\", \"email\": \"" + mail + "\", \"solde\" :"+0+"}"); // response = APICommandes.postMethod(srvURL + "/api/clients","{\"name\": \"" + username + "\", \"email\": \"" + mail + "\", \"solde\" :"+0+"}");
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"name\": \""+username+"\",\"email\": \""+mail+"\",\"solde\": 0}");
Request request = new Request.Builder()
.url(srvURL + "/api/clients")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
responseHttp = client.newCall(request).execute();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
Toast.makeText(TagDetectedActivityAdmin.this, "Error", Toast.LENGTH_LONG).show(); Toast.makeText(TagDetectedActivityAdmin.this, "Error", Toast.LENGTH_LONG).show();
} }
if(response.length() <=3 ) { if(responseHttp.body().toString().length() <=3 ) {
// Info sur le retour du POST Creation client // Info sur le retour du POST Creation client
Toast.makeText(TagDetectedActivityAdmin.this, "Server not responding: " + response, Toast.LENGTH_LONG).show(); Toast.makeText(TagDetectedActivityAdmin.this, "Server not responding: " + responseHttp.body().toString(), Toast.LENGTH_LONG).show();
} else { } else {
// Creation du compte réussie, link le bracelet au compte client (TODO: penser à faire les verifs si bracelet existe avant de créer un compte client) /*Creation du compte réussie, link le bracelet au compte client (TODO: penser à faire les verifs si bracelet existe avant de créer un compte client)
// Une fois qu'on a vérifié que le bracelet n'existe pas dans la base on l'ajoute au client Une fois qu'on a vérifié que le bracelet n'existe pas dans la base on l'ajoute au client
On commence par parser la reponse de l'appel POST précédent pour avoir l'idClient sans refaire de requête*/
JSONObject jsonReader = null;
int idClient = 0;
try {
jsonReader = new JSONObject(responseHttp.body().string());
idClient = jsonReader.getInt("id");
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// On commence par parser la reponse de l'appel POST précédent pour avoir l'idClient sans refaire de requête
JsonTraductor maListeJson = new JsonTraductor(response);
int idClient = Integer.parseInt((maListeJson.getJsonData("id", 0)));
// On peut maintenant link le bracelet grace à l'hexa_id et l'idClient // On peut maintenant link le bracelet grace à l'hexa_id et l'idClient
try { try {
// response = APICommandes.postMethod(srvURL + "/api/bracelets","{\"nfcId\": \"" + hexa_id + "\", \"client\": \"/api/clients/" + idClient + "\", \"state\" :"+0+"}");
OkHttpClient client = new OkHttpClient().newBuilder() OkHttpClient client = new OkHttpClient().newBuilder()
.build(); .build();
@ -114,17 +139,16 @@ public class TagDetectedActivityAdmin extends Activity {
.method("POST", body) .method("POST", body)
.addHeader("Content-Type", "application/json") .addHeader("Content-Type", "application/json")
.build(); .build();
Response responseHttp = client.newCall(request).execute(); responseHttp = client.newCall(request).execute();
if (responseHttp.code() == 400) { if (responseHttp.code() == 400) {
try{ try {
maListeJson = new JsonTraductor(responseHttp.body().string()); jsonReader = new JSONObject(responseHttp.body().string());
String violationMessage = ((maListeJson.getJsonData("violations", 0))); Log.d("JSON-MSG","violations: "+ jsonReader.getJSONArray("violations").getString(0));
maListeJson = new JsonTraductor(violationMessage); Toast.makeText(TagDetectedActivityAdmin.this, "violations: "+ jsonReader.getJSONArray("violations").getString(0), Toast.LENGTH_LONG).show();
violationMessage = ((maListeJson.getJsonData("message", 0))); } catch (JSONException e) {
Toast.makeText(TagDetectedActivityAdmin.this, "ID NFC: "+violationMessage, Toast.LENGTH_LONG).show(); e.printStackTrace();
}
} catch (Exception e) {}
} }
} catch (IOException e) { } catch (IOException e) {

Loading…
Cancel
Save