package Services; import Entities.User; import Utils.ServerUrl; import com.codename1.io.*; import com.codename1.io.CharArrayReader; import com.codename1.ui.Dialog; import com.codename1.ui.events.ActionListener; import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Map; public class UserService { public User user ; public ArrayList users ; public static UserService instance=null; public boolean resultOK; private ConnectionRequest req; private UserService() { req = new ConnectionRequest() { @Override protected void handleErrorResponseCode(int code, String message) { if (code == 401) { // Unauthorized Dialog.show("Check Your information","Check Your information","ok",null); } else { Dialog.show("Error", code + ": " + message, "Retry", "Cancel"); } } }; } public static UserService getInstance() { if (instance == null) { instance = new UserService(); } return instance; } // only id and roles public User parseUser(String jsonText){ JSONParser j = new JSONParser(); Map tasksListJson = null; try { tasksListJson = j.parseJSON(new CharArrayReader(jsonText.toCharArray())); } catch (IOException e) { e.printStackTrace(); } User user = new User() ; // get User Id double id = (double) tasksListJson.get("id"); // Arraylist because we have two roles ArrayList roles = (ArrayList) tasksListJson.get("roles"); // we need the first one String role = roles.get(0) ; // set info to user user.setId((int) id); user.setRoles(role); return user; } public ArrayList parseUsers(String jsonText){ ArrayList list = new ArrayList<>() ; User user ; JSONParser j = new JSONParser(); Map tasksListJson = null; try { tasksListJson = j.parseJSON(new CharArrayReader(jsonText.toCharArray())); } catch (IOException e) { e.printStackTrace(); } List> mapList = (List>) tasksListJson.get("root"); for(Map ob : mapList) { double id = (double) ob.get("id") ; String email = (String) ob.get("Email") ; String nom = (String) ob.get("Nom") ; String prenom = (String) ob.get("Prenom") ; double age = (double) ob.get("age") ; user = new User() ; user.setId((int) id); user.setEmail(email); user.setNom(nom); user.setPrenom(prenom); u System.out.println(ob); } return list ; } public ArrayList getAllUsers(){ String url = ServerUrl.baseUrl+"/users"; req.setUrl(url); req.setPost(true); req.addResponseListener(new ActionListener() { @Override public void actionPerformed(NetworkEvent evt) { users = parseUsers(new String(req.getResponseData())); req.removeResponseListener(this); } }); NetworkManager.getInstance().addToQueueAndWait(req); return users; } public User SignIn(String email , String password) { String url = ServerUrl.baseUrl + "/signin" ; req.setUrl(url); req.setPost(true); req.setReadResponseForErrors(false); req.setHttpMethod("POST"); req.setContentType("application/json"); req.setRequestBody("{\n" + " \"username\": \""+email+"\",\n" + " \"password\": \""+password+"\"\n" + "}"); req.addResponseListener(new ActionListener() { @Override public void actionPerformed(NetworkEvent evt) { resultOK = req.getResponseCode() == 200; user = parseUser(new String(req.getResponseData())); req.removeResponseListener(this); } }); NetworkManager.getInstance().addToQueueAndWait(req); return user; } }