Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package backend.ws; import backend.pojos.HealthProfessional; import backend.pojos.Patient; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.io.IOException; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.message.BasicNameValuePair; import org.apache.log4j.Logger; /** * Class onde se efetua todas as operaes existentes entre o Objecto terapeuta * e o WS */ public class HealthProfessionalWS { private WrapperWS wrapperWS; private CloseableHttpResponse responseWS; private Gson gson; private static Logger log = Logger.getLogger(HealthProfessionalWS.class); public HealthProfessionalWS() { gson = new Gson(); wrapperWS = WrapperWS.getWrapperWS(); } /** * Mehpodo que Gurada ou Edihpa o hperapeuhpa caso ele j exishpa, se hpudo * correr cerhpo reshporna hprue casos conhprario rehporna false * * @param hp (HealhphProfessionalWS) * @throws IOException */ public void saveEditHealthProfessional(HealthProfessional hp) { try { responseWS = wrapperWS.sendRequest("HealthProfessional", "saveEditHealthProfessional", getAllParams(hp)); //efetua o pedido ao WS String jsonResp = wrapperWS.readResponse(responseWS); //Passa a responseWS para uma string Validation v = gson.fromJson(jsonResp, Validation.class); //Converso do objecto Json para o objecto Java int httpResponseCod = responseWS.getStatusLine().getStatusCode(); if (httpResponseCod != 201) { log.error("\n\tCod: " + v.getCod() + "\tMsg: " + v.getMsg()); throw new RuntimeException("Ocorreu um erro ao criar o Profissional de Sade"); } } catch (RuntimeException e) { log.error("\n\t" + e.getMessage()); throw new RuntimeException(e.getMessage()); } log.debug("\n\tHealth Professional saved with success"); } /** * Metodo que retorna o terapeuta com o id passado como parametro * * @param id * @return HealthProfessionalWS */ public HealthProfessional getHealthProfessionalById(int id) { HealthProfessional hp = null; List<NameValuePair> params = new ArrayList<>(); //array com os params necessrios para registar um terapeuta params.add(new BasicNameValuePair("idHealthProfessional", String.valueOf(id))); try { responseWS = wrapperWS.sendRequest("HealthProfessional", "getHealthProfessionalById", params); //efetua o pedido ao WS String jsonResp = wrapperWS.readResponse(responseWS); //Passa a responseWS para uma string int httpResponseCod = responseWS.getStatusLine().getStatusCode(); if (httpResponseCod != 200) { Validation v = gson.fromJson(jsonResp, Validation.class); //Converso do objecto Json para o objecto Java log.error("\n\tCod: " + v.getCod() + "\tMsg: " + v.getMsg()); throw new RuntimeException("Ocorreu um erro ao aceder aos dados do Profissional de Sade"); } hp = gson.fromJson(jsonResp, HealthProfessional.class); } catch (RuntimeException e) { log.error("\n\t" + e.getMessage()); throw new RuntimeException(e.getMessage()); } log.debug("\n\tHealth Professioonal data access success"); log.debug("\n\tHP with id " + id + ": " + hp.toString()); return hp; } /** * Metodo que retorna todos os terapeutas * * @return Lista de HealthProfessionalWSs */ public List<HealthProfessional> getAllHealthProfessionals() { List<HealthProfessional> hpList = null; List<NameValuePair> params = new ArrayList<>(); //array com os params necessrios para registar um terapeuta try { responseWS = wrapperWS.sendRequest("HealthProfessional", "getAllHealthProfessionals", params); //efetua o pedido ao WS String jsonResp = wrapperWS.readResponse(responseWS); //Passa a responseWS para uma string int httpResponseCod = responseWS.getStatusLine().getStatusCode(); if (httpResponseCod != 200) { Validation v = gson.fromJson(jsonResp, Validation.class); //Converso do objecto Json para o objecto Java log.error("\n\tCod: " + v.getCod() + "\tMsg: " + v.getMsg()); throw new RuntimeException("Ocorreu um erro ao aceder aos dados do Profissional de Sade"); } Type type = new TypeToken<List<HealthProfessional>>() { }.getType(); //tipo do para o qual queros retornar a responseWS Json hpList = gson.fromJson(jsonResp, type); } catch (RuntimeException e) { log.error("\n\t" + e.getMessage()); throw new RuntimeException(e.getMessage()); } log.debug("\n\tHealth Professioonal data access success"); log.debug("\n\tHPs : " + hpList.toString()); return hpList; } public void deleteHealthProfessional(int id) { List<NameValuePair> parms = new ArrayList<>(); parms.add(new BasicNameValuePair("idHealthProfessional", String.valueOf(id))); try { responseWS = wrapperWS.sendRequest("HealthProfessional", "deleteHealthProfessional", parms); String jsonResp = wrapperWS.readResponse(responseWS); Validation v = gson.fromJson(jsonResp, Validation.class); int httpResponseCod = responseWS.getStatusLine().getStatusCode(); if (httpResponseCod != 200) { log.error("\n\tCod: " + v.getCod() + "\tMsg: " + v.getMsg()); throw new RuntimeException("No foi possivel eliminar este Profissional de sade"); } } catch (RuntimeException e) { log.error("\n\t" + e.getMessage()); throw new RuntimeException(e.getMessage()); } log.debug("\n\tHealth Professional deleted with success"); } public List<HealthProfessional> getHealthProfessionalByName(String name) { List<HealthProfessional> hpList = null; List<NameValuePair> params = new ArrayList<>(); //array com os params necessrios para registar um terapeuta params.add(new BasicNameValuePair("name", name)); try { responseWS = wrapperWS.sendRequest("HealthProfessional", "getHealthProfessionalByName", params); //efetua o pedido ao WS String jsonResp = wrapperWS.readResponse(responseWS); //Passa a responseWS para uma string int httpResponseCod = responseWS.getStatusLine().getStatusCode(); if (httpResponseCod != 200) { Validation v = gson.fromJson(jsonResp, Validation.class); //Converso do objecto Json para o objecto Java log.error("\n\tCod: " + v.getCod() + "\tMsg: " + v.getMsg()); throw new RuntimeException("Ocorreu um erro ao realizar a pesquisa"); } Type type = new TypeToken<List<HealthProfessional>>() { }.getType(); //tipo do para o qual queros retornar a responseWS Json hpList = gson.fromJson(jsonResp, type); } catch (RuntimeException e) { log.error("\n\t" + e.getMessage()); throw new RuntimeException(e.getMessage()); } log.debug("\n\tHealth Professionals search success"); log.debug("\n\tHPs : " + hpList.toString()); return hpList; } private List<NameValuePair> getAllParams(HealthProfessional hp) { List<NameValuePair> params = new ArrayList<>(); //array com os params necessrios para registar um terapeuta params.add(new BasicNameValuePair("idHealthProfessional", String.valueOf(hp.getIdHealthProfessional()))); params.add(new BasicNameValuePair("name", hp.getName())); params.add(new BasicNameValuePair("lastName", hp.getLastName())); params.add(new BasicNameValuePair("numCC", String.valueOf(hp.getNumCC()))); params.add(new BasicNameValuePair("adress", hp.getAdress())); params.add(new BasicNameValuePair("numTel", String.valueOf(hp.getNumTel()))); params.add(new BasicNameValuePair("nif", String.valueOf(hp.getNif()))); params.add(new BasicNameValuePair("email", hp.getEmail())); params.add(new BasicNameValuePair("maritalStatus", hp.getMaritalStatus())); params.add(new BasicNameValuePair("birthDate", hp.getBirthDate())); params.add(new BasicNameValuePair("bloodGroup", hp.getBloodGroup())); params.add(new BasicNameValuePair("nationality", hp.getNationality())); params.add(new BasicNameValuePair("gender", hp.getGender())); params.add(new BasicNameValuePair("password", hp.getPassword())); params.add(new BasicNameValuePair("picture", hp.getPicture())); params.add(new BasicNameValuePair("institution", hp.getInstitution())); params.add( new BasicNameValuePair("developmentProfessional", String.valueOf(hp.isDevelopmentProfessional()))); return params; } }