Java tutorial
/* * Copyright 2014 Cristiam Mercado. * * Esta obra est licenciada bajo la Licencia: * Creative Commons Atribucin-NoComercial-SinDerivar 4.0 Internacional. * * Para ver una copia de esta licencia, visita: * http://creativecommons.org/licenses/by-nc-nd/4.0/. */ package com.cmsoftware.keyron.controlador; import com.cmsoftware.keyron.modelo.AdminDAO; import com.cmsoftware.keyron.modelo.Empleado; import java.net.URLEncoder; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONObject; /** * Clase que maneja las funciones del administrador. * * @author Cristiam Mercado cristiammercadoj@gmail.com * @version 1.0 */ public class AdministradorFunciones { /** * Instancia de la clase parser de Json. */ private final Json json; /** * URL del servicio web de administrador. */ private static final String ACCESO_URL = "http://dev.keyron.hol.es/Servicios/administrador.php"; /** * Variable post para la accion de listar empleados. */ private static final String ACCION_LISTAR = "listaEmpleados"; /** * Variable post para la accion de agregar empleado. */ private static final String ACCION_AGREGAR = "agregarEmpleado"; /** * Variable post para la accion de actualizar empleado. */ private static final String ACCION_ACTUALIZAR = "actualizarEmpleado"; /** * Constructor de la clase AdministradorFunciones. */ public AdministradorFunciones() { json = new Json(); } /** * Obtener lista de empleados registrados. * * @return Lista de empleados consultados. */ public ArrayList<Empleado> listarEmpleados() { String parametros; ArrayList<Empleado> lista = new ArrayList<>(); try { parametros = "accion=" + URLEncoder.encode(ACCION_LISTAR, "UTF-8") + "&indice=" + URLEncoder.encode("todo", "UTF-8"); JSONObject respuesta = json.getRespuestaAPI(ACCESO_URL, parametros); if (respuesta.getInt("error") == 0) { JSONArray json_lista = respuesta.getJSONArray("lista"); for (int i = 0; i < json_lista.length(); i++) { JSONObject o = json_lista.getJSONObject(i); lista.add(new Empleado("" + o.getLong("cedula"), o.getString("nombre"), o.getString("apellido"), o.getString("direccion"), o.getLong("telefono") + "", o.getString("correo"), o.getString("nivel"), String.valueOf(o.get("fecha_registro")), o.getString("activo"), String.valueOf(o.get("fecha_activacion")), String.valueOf(o.get("fecha_desactivacion")))); } new AdminDAO().agregarListaEmpleado(lista); } else if (respuesta.getInt("error") == 14) { return null; } return lista; } catch (Exception e) { Log.agregarError(e); System.err.println("ERROR AdministradorFunciones:107 -> " + e.toString()); return lista; } } /** * Agrega un nuevo empleado a la plataforma. * * @param empleado Instancia con los datos del nuevo empleado. * @return Respuesta del web service en formato Json. */ public JSONObject agregarEmpleado(Empleado empleado) { JSONObject respuesta = null; String parametros; try { parametros = "accion=" + URLEncoder.encode(ACCION_AGREGAR, "UTF-8") + "&cedula=" + URLEncoder.encode(empleado.getCedula(), "UTF-8") + "&nombre=" + URLEncoder.encode(empleado.getNombre(), "UTF-8") + "&apellido=" + URLEncoder.encode(empleado.getApellido(), "UTF-8") + "&direccion=" + URLEncoder.encode(empleado.getDireccion(), "UTF-8") + "&telefono=" + URLEncoder.encode(empleado.getTelefono(), "UTF-8") + "&correo=" + URLEncoder.encode(empleado.getCorreo(), "UTF-8") + "&nivel=" + URLEncoder.encode(empleado.getNivel(), "UTF-8"); respuesta = json.getRespuestaAPI(ACCESO_URL, parametros); } catch (Exception e) { Log.agregarError(e); System.err.println("ERROR AdministradorFunciones:131 -> " + e.toString()); } return respuesta; } /** * Actualiza la informcin de un empleado. * * @param empleado Instancia con los datos del empleado. * @return Respuesta del web service en formato Json. */ public JSONObject actualizarEmpleado(Empleado empleado) { JSONObject respuesta = null; String parametros; try { parametros = "accion=" + URLEncoder.encode(ACCION_ACTUALIZAR, "UTF-8") + "&cedula=" + URLEncoder.encode(empleado.getCedula(), "UTF-8") + "&nombre=" + URLEncoder.encode(empleado.getNombre(), "UTF-8") + "&apellido=" + URLEncoder.encode(empleado.getApellido(), "UTF-8") + "&direccion=" + URLEncoder.encode(empleado.getDireccion(), "UTF-8") + "&telefono=" + URLEncoder.encode(empleado.getTelefono(), "UTF-8") + "&correo=" + URLEncoder.encode(empleado.getCorreo(), "UTF-8"); respuesta = json.getRespuestaAPI(ACCESO_URL, parametros); } catch (Exception e) { Log.agregarError(e); System.err.println("ERROR AdministradorFunciones:157 -> " + e.toString()); } return respuesta; } /** * Listar empleados desde la base de datos local. * * @return Lista de empleados. */ public ArrayList<Empleado> listaEmpleadosLocales() { return new AdminDAO().listaDeEmpleados(); } }