From 63e6a5b7dd8bd726f462326f11ef48cd8d5a98e0 Mon Sep 17 00:00:00 2001 From: GME Date: Mon, 26 Nov 2018 10:17:28 +0100 Subject: [PATCH] setup register --- .idea/caches/build_file_checksums.ser | Bin 541 -> 535 bytes .../mobile/homepage/HomepageActivity.java | 4 + .../mobile/homepage/LoginActivity.java | 2 +- .../mobile/homepage/RegisterActivity.java | 75 ++++++++++-------- .../mobile/restApi/HttpCallHandler.java | 67 +++++++++++++++- 5 files changed, 115 insertions(+), 33 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index f6ef3f294a0109a049572961da009a755ee456f9..aaba8ebbe85558fa71960686090ca0063d1c12f2 100644 GIT binary patch delta 71 zcmV-N0J#611eXMmm;_GZU?-8BwUe3wL@0Z9O4)0TMpb{U@(V4tOs#YPCPO-0RdZ!> db6iJFMO-dta$#g_Wn7c-0UMKu0TPq&0WA#L8`b~- delta 70 zcmV-M0J;B{1f2wsm;_6qxmA&zwG%8uI$TwAWpZ;|M|EjzY+-e6Ws|f4Hj_~SL=(vl ch#G3t@~&-IHhgt<8 diff --git a/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java b/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java index 2868798..27d7763 100644 --- a/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java +++ b/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java @@ -1,6 +1,7 @@ package monnethic.mobile.homepage; import android.content.Intent; +import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; @@ -8,6 +9,8 @@ import android.widget.Button; import com.example.monnthic.monnethicmobile.R; +import monnethic.mobile.database.User; + public class HomepageActivity extends AppCompatActivity { @Override @@ -35,6 +38,7 @@ public class HomepageActivity extends AppCompatActivity { Intent registerIntent = new Intent(HomepageActivity.this, RegisterActivity.class); HomepageActivity.this.startActivity(registerIntent); } + public void launchLoginActivity(){ Intent loginIntent = new Intent(HomepageActivity.this, LoginActivity.class); HomepageActivity.this.startActivity(loginIntent); diff --git a/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java b/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java index af0210c..6af6c0f 100644 --- a/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java +++ b/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java @@ -101,7 +101,7 @@ public class LoginActivity extends AppCompatActivity { String url = Config.USER_LOGIN; String[] paramsList = {params[0],params[1]}; HttpCallHandler httpCallHandler = new HttpCallHandler(); - return new JSONObject(httpCallHandler.executePostHttp(url,paramsList)); + return new JSONObject(httpCallHandler.executeLoginHttp(url,paramsList)); }catch (Exception e){ e.printStackTrace(); return null; diff --git a/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java b/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java index 31a7b1f..010aa0c 100644 --- a/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java +++ b/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java @@ -1,6 +1,8 @@ package monnethic.mobile.homepage; +import android.content.Context; import android.content.Intent; +import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; @@ -10,7 +12,11 @@ import android.widget.Toast; import com.example.monnthic.monnethicmobile.R; +import org.json.JSONObject; + import monnethic.mobile.database.User; +import monnethic.mobile.restApi.Config; +import monnethic.mobile.restApi.HttpCallHandler; import monnethic.mobile.user.UserAccountActivity; public class RegisterActivity extends AppCompatActivity { @@ -41,7 +47,6 @@ public class RegisterActivity extends AppCompatActivity { finish(); } }); - buttonOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -50,46 +55,17 @@ public class RegisterActivity extends AppCompatActivity { }); } - //TODO VERIFY EACH EDIT TEXT public void validateInput(){ if(checkInputEmpty()){ if(!InputController.passwordValidator(password.getText().toString())){ Toast.makeText(this, "Password must contains 6 to 20 characters, one lowercase, one uppercase and one digit", Toast.LENGTH_LONG).show(); }else if(InputController.validEmail(email.getText().toString())){ User inputUser = new User(name.getText().toString(),firstname.getText().toString(),email.getText().toString(),password.getText().toString()); - insertUserLdap(inputUser); + new UserRegisterTask(this).execute(inputUser); } } } - //TODO INSERT VALIDE USER INTO LDAP - private void insertUserLdap(User u){ - //CHECK IF USER ALREADY EXIST - - //IF USER DOESN'T EXIST, INSERT USER INTO LDAP - - //CHECK RESPONSE OR RESULT OF INSERT - - //IF SUCCESSFULLY INSERTED INTO LDAP CALL LAUNCHWALLET - - //TEMPORARY - if(InputController.checkUser(u.getEmail())){ - Toast.makeText(this, "User already have an account, please log in", Toast.LENGTH_SHORT).show(); - }else { - Toast.makeText(this, "INSERT", Toast.LENGTH_SHORT).show(); - launchUserActivity(1); - } - } - - //TODO LAUNCH WALLET ACTIVITY - private void launchUserActivity(int ldapId){ - //LAUNCH APP WALLET WITH ID USER - Intent walletIntent = new Intent(RegisterActivity.this, UserAccountActivity.class); - walletIntent.putExtra("idUser", ldapId); - RegisterActivity.this.startActivity(walletIntent); - finish(); - } - private boolean checkInputEmpty(){ if(InputController.isEmptyEdit(name)){ Toast.makeText(this, "You did not enter your name", Toast.LENGTH_SHORT).show(); @@ -127,4 +103,41 @@ public class RegisterActivity extends AppCompatActivity { } } } + + private class UserRegisterTask extends AsyncTask { + Context mContext; + private UserRegisterTask(final Context context){mContext=context;} + + @Override + protected void onPostExecute(JSONObject result){ + try{ + if(result!=null){ + if(result.getInt("status") == 200){ + Intent accountIntent = new Intent(RegisterActivity.this, UserAccountActivity.class); + accountIntent.putExtra("userHash", result.getString("userHash")); + RegisterActivity.this.startActivity(accountIntent); + finish(); + }else{ + Toast.makeText(mContext, result.getString("response"), Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(mContext, "AN ERROR OCCURED", Toast.LENGTH_SHORT).show(); + } + }catch (Exception e){ + e.printStackTrace(); + } + } + + @Override + protected JSONObject doInBackground(User... users) { + try{ + String url = Config.USER_REGISTER; + HttpCallHandler httpCallHandler = new HttpCallHandler(); + return new JSONObject(httpCallHandler.executeRegisterHttp(url,users[0])); + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + } } diff --git a/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java b/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java index e98822c..5078b28 100644 --- a/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java +++ b/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java @@ -10,6 +10,8 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; +import monnethic.mobile.database.User; + public class HttpCallHandler { public String executeGetHttp(String urlParam, String[] params){ @@ -59,7 +61,7 @@ public class HttpCallHandler { } } - public String executePostHttp(String urlParam, String[] params){ + public String executeLoginHttp(String urlParam, String[] params){ BufferedReader bufferedReader = null; HttpURLConnection connection = null; String res = null; @@ -120,4 +122,67 @@ public class HttpCallHandler { } } } + + public String executeRegisterHttp(String urlParam, User user){ + BufferedReader bufferedReader = null; + HttpURLConnection connection = null; + String res = null; + try{ + URL url = new URL(urlParam); + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("POST"); + connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); + connection.setRequestProperty("Accept","application/json"); + connection.setDoOutput(true); + connection.setDoInput(true); + JSONObject jsonParam = new JSONObject(); + jsonParam.put("name",user.getName()); + jsonParam.put("firstname",user.getFirstname()); + jsonParam.put("email",user.getEmail()); + jsonParam.put("password",user.getPassword()); + + DataOutputStream os = new DataOutputStream(connection.getOutputStream()); + os.writeBytes(jsonParam.toString()); + + int statusCode = connection.getResponseCode(); + if(statusCode!=200){ + JSONObject jsonReturn = new JSONObject(); + System.out.println("Response code is : "+statusCode); + if(statusCode == 302){ + jsonReturn.put("status",302); + jsonReturn.put("response","User Already Exist !"); + return jsonReturn.toString(); + }else { + return null; + } + }else { + bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); + StringBuilder stringBuilder = new StringBuilder(); + String line; + while ((line = bufferedReader.readLine())!=null){ + stringBuilder.append(line); + } + JSONObject jsonSuccess = new JSONObject(stringBuilder.toString()); + jsonSuccess.put("status",200); + res = jsonSuccess.toString(); + os.flush(); + os.close(); + } + return res; + }catch (Exception e){ + e.printStackTrace(); + return null; + } finally { + if(connection != null){ + connection.disconnect(); + } + if(bufferedReader != null){ + try { + bufferedReader.close(); + }catch (IOException e){ + e.printStackTrace(); + } + } + } + } }