com.cmsoftware.keyron.controlador.AdministradorFunciones.java Source code

Java tutorial

Introduction

Here is the source code for com.cmsoftware.keyron.controlador.AdministradorFunciones.java

Source

/*
 * 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();
    }
}