From 468c1cf027baf2bc63a636a27aca81c373b3922b Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Fri, 28 Oct 2022 13:51:29 +0200 Subject: Omogucena registracija na clientskom delu aplikacije. --- .../brzodolokacije/Fragments/FragmentRegister.kt | 44 ++++++++++++++++++---- .../example/brzodolokacije/Interfaces/IAuthApi.kt | 4 +- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt index 05348a2..4843675 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt @@ -1,7 +1,9 @@ package com.example.brzodolokacije.Fragments +import android.graphics.BitmapFactory import android.graphics.Color import android.os.Bundle +import android.util.Base64 import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View @@ -9,7 +11,14 @@ import android.view.ViewGroup import android.widget.Button import android.widget.EditText import android.widget.Toast +import com.example.brzodolokacije.Interfaces.IAuthApi +import com.example.brzodolokacije.Models.Auth.Register import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import okhttp3.ResponseBody +import retrofit2.Call +import retrofit2.Response +import javax.security.auth.callback.Callback class FragmentRegister : Fragment() { // TODO: Rename and change types of parameters @@ -68,16 +77,37 @@ class FragmentRegister : Fragment() { } if(!emailString.isEmpty() && !passwordString.isEmpty() && !nameString.isEmpty() && !usernameString.isEmpty()) { + var registerData=Register(nameString,usernameString,emailString,passwordString) - //proveri da li postoji u bazi + val authApi=RetrofitHelper.getInstance().create(IAuthApi::class.java) + + val request=authApi.register(registerData) + + request.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { + if(response.isSuccessful()){ + Toast.makeText( + activity, "Uspesna registracija. Verifikujte email. TODO(navigate to login)", Toast.LENGTH_LONG + ).show(); + //TODO(navigate to login) + }else{ + if(response.errorBody()!=null) + Toast.makeText( + activity, response.errorBody()!!.string(), Toast.LENGTH_LONG + ).show(); + } + + + } + + override fun onFailure(call: Call, t: Throwable) { + Toast.makeText( + activity, "Greska, pokusajte ponovo.", Toast.LENGTH_LONG + ).show(); + } + }) - //UPIT BAZI - ako postoji - greska korisnik je registrovan - Toast.makeText( - activity, "Korisnik sa unetim podacima već postoji. " + "\n" + - "Da li želite da se prijavite?", Toast.LENGTH_LONG - ).show(); - //UPIT BAZI - ako ne postoji dodaj u bazu //***DODATI broj karaktera lozinke, provera da li je email sa @ i .com diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt index 6ff3899..bd430a8 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt @@ -2,8 +2,8 @@ package com.example.brzodolokacije.Interfaces import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.Models.Auth.Register +import okhttp3.ResponseBody import retrofit2.Call -import retrofit2.Response import retrofit2.http.Body import retrofit2.http.POST @@ -11,5 +11,5 @@ interface IAuthApi { @POST("/api/auth/login") fun login(@Body obj:Login): Call @POST("/api/auth/register") - fun register(@Body obj:Register):Call + fun register(@Body obj:Register):Call } \ No newline at end of file -- cgit v1.2.3 From f13e783b464455aed57b5a445025897dc10d40da Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Fri, 28 Oct 2022 13:58:39 +0200 Subject: Omoguceno slanje zahteva za log in. --- .../brzodolokacije/Fragments/FragmentLogin.kt | 43 +++++++++++++++++----- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index d47a16e..e056395 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -10,7 +10,13 @@ import android.widget.Button import android.widget.EditText import android.widget.TextView import android.widget.Toast +import com.example.brzodolokacije.Interfaces.IAuthApi +import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import okhttp3.ResponseBody +import retrofit2.Call +import retrofit2.Response class FragmentLogin : Fragment() { @@ -60,15 +66,34 @@ class FragmentLogin : Fragment() { } if(!emailString.isEmpty() && !passwordString.isEmpty()) { - - //proveri da li postoji u bazi - - //UPIT BAZI - ako postoji - idi na pocetnu stranu za logovanog - - - //UPIT BAZI - ako ne postoji ili je pogresan unos - ispisi poruku - - //DODATI da li postoji korisnicko ime i da li je tacna lozinka + var loginData= Login(emailString,passwordString) + val authApi= RetrofitHelper.getInstance().create(IAuthApi::class.java) + val request=authApi.login(loginData) + + request.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { + if(response.isSuccessful()){ + val token=response.body().toString() + Toast.makeText( + activity, token, Toast.LENGTH_LONG + ).show(); + //TODO(navigate to main page, add token in shared storage) + }else{ + if(response.errorBody()!=null) + Toast.makeText( + activity, response.errorBody()!!.string(), Toast.LENGTH_LONG + ).show(); + } + + + } + + override fun onFailure(call: Call, t: Throwable) { + Toast.makeText( + activity, "Greska, pokusajte ponovo.", Toast.LENGTH_LONG + ).show(); + } + }) Toast.makeText( activity, "Korisnik sa unetim podacima nije pronađen. " + "\n" + -- cgit v1.2.3 From d94e5ee97a20b0ad6ee1df5f9fe5574750f25c65 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Fri, 28 Oct 2022 14:30:45 +0200 Subject: Dodat sharedPrefrencesHelper. Upisivanje jwt tokena u shared prefrences na log in-u. --- .../brzodolokacije/Fragments/FragmentLogin.kt | 5 ++-- .../Services/SharedPreferencesHelper.kt | 33 ++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index e056395..ab6794c 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -14,7 +14,7 @@ import com.example.brzodolokacije.Interfaces.IAuthApi import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.R import com.example.brzodolokacije.Services.RetrofitHelper -import okhttp3.ResponseBody +import com.example.brzodolokacije.Services.SharedPreferencesHelper import retrofit2.Call import retrofit2.Response @@ -77,7 +77,8 @@ class FragmentLogin : Fragment() { Toast.makeText( activity, token, Toast.LENGTH_LONG ).show(); - //TODO(navigate to main page, add token in shared storage) + //TODO(navigate to main page) + SharedPreferencesHelper.addValue("jwt",token,activity!!) }else{ if(response.errorBody()!=null) Toast.makeText( diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt new file mode 100644 index 0000000..83e88be --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt @@ -0,0 +1,33 @@ +package com.example.brzodolokacije.Services + +import android.app.Activity +import android.content.Context +import android.content.SharedPreferences +import android.content.SharedPreferences.Editor +import androidx.fragment.app.FragmentActivity + +object SharedPreferencesHelper { + val prefName:String="OdysseyPreferences" + + fun getValue(key:String,act: FragmentActivity):String?{ + var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE) + return pref.getString(key,null) + } + fun addValue(key:String,value:String,act:FragmentActivity):Boolean{ + var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE) + var editor:Editor=pref.edit() + editor.putString(key,value) + return editor.commit() + } + fun getValue(key:String,act: Activity):String?{ + var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE) + return pref.getString(key,null) + } + fun addValue(key:String,value:String,act:Activity):Boolean{ + var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE) + var editor:Editor=pref.edit() + editor.putString(key,value) + return editor.commit() + } + +} \ No newline at end of file -- cgit v1.2.3