Я создал API аутентификации (Войти и Зарегистрироваться), используя larval, и протестировал их в android studio, и теперь они работают хорошо, во время подключения я получаю всю информацию пользователя.
I / onSuccess: {"status": "success", "data": {"id": 2, "name": "user", "prenom": "user" ...}
Мне нужно получить идентификатор пользователя, подключенного из фрагмента входа в систему, и использовать его во фрагменте моего профиля. Как я могу это сделать?
Фрагмент моего логина
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(LoginInterface.LOGINURL)
.addConverterFactory(ScalarsConverterFactory.create())
.build();
LoginInterface api = retrofit.create(LoginInterface.class);
Call<String> call = api.getUserLogin(getEmailId, getPassword);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful()) {
if (response.body() != null) {
Log.i("Responsestring", response.body().toString());
Log.i("onSuccess", response.body().toString());
String jsonresponse = response.body().toString();
try {
JSONObject jsonObject = new JSONObject(jsonresponse);
if (jsonObject.getString("status").equals("success")) {
Toast.makeText(getActivity(), "Login Successfully!", Toast.LENGTH_SHORT)
.show();
Intent intent;
intent = new Intent(getActivity(), ActivityListEvents.class);
startActivity(intent);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
Интерфейс моего логина
public interface LoginInterface {
String LOGINURL = "http://192.168.1.105/AnnocesPFE/public/api/";
@FormUrlEncoded
@POST("login")
Call<String> getUserLogin(
@Field("email") String email,
@Field("password") String password
);
}
Мне нужно использовать его в ProfileFragment
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(UpdateProfile.UPDPRO)
.addConverterFactory(ScalarsConverterFactory.create())
.build();
UpdateProfile api = retrofit.create(UpdateProfile.class);
Call<String> call = api.UpdateUsers(getId(),name,prenom,adresse,email,numtel);
//Log.i("updateUsers: ",prenom);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful()) {
if (response.body() != null) {
Log.i("Responsestring", response.body().toString());
Log.i("onSuccess", response.body().toString());
String jsonresponse = response.body().toString();
try {
JSONObject jsonObject = new JSONObject(jsonresponse);
if (jsonObject.getString("status").equals("success")) {
Toast.makeText(getActivity(), "Update Successfully!", Toast.LENGTH_SHORT)
.show();
} else if (jsonObject.getString("status").equals("error")) {
/* new CustomToast().Show_Toast(getActivity(), view,
" " + jsonObject.getString("message"));*/
Toast.makeText(getActivity(), "Update failed!", Toast.LENGTH_SHORT)
.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Мой профиль интерфейса
public interface UpdateProfile {
String UPDPRO ="http://192.168.1.105/AnnocesPFE/public/api/";
@FormUrlEncoded
@PUT("users/{id}")
Call<String> UpdateUsers(
@Path("id") int id,
@Field("name") String name,
@Field("prenom") String prenom,
@Field("adresse") String adresse,
@Field("email") String email,
@Field("numtel") String numtel
);
}