org.sistemafinanciero.rest.impl.SocioRESTService.java Source code

Java tutorial

Introduction

Here is the source code for org.sistemafinanciero.rest.impl.SocioRESTService.java

Source

/*
 * JBoss, Home of Professional Open Source
 * Copyright 2013, Red Hat, Inc. and/or its affiliates, and individual
 * contributors by the @authors tag. See the copyright.txt in the
 * distribution for a full listing of individual contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.sistemafinanciero.rest.impl;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigInteger;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Set;

import javax.ejb.EJB;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import org.sistemafinanciero.entity.Agencia;
import org.sistemafinanciero.entity.Beneficiario;
import org.sistemafinanciero.entity.CuentaAporte;
import org.sistemafinanciero.entity.CuentaBancariaView;
import org.sistemafinanciero.entity.Moneda;
import org.sistemafinanciero.entity.PersonaNatural;
import org.sistemafinanciero.entity.SocioView;
import org.sistemafinanciero.entity.type.TipoPersona;
import org.sistemafinanciero.exception.NonexistentEntityException;
import org.sistemafinanciero.exception.PreexistingEntityException;
import org.sistemafinanciero.exception.RollbackFailureException;
import org.sistemafinanciero.rest.Jsend;
import org.sistemafinanciero.rest.SocioREST;
import org.sistemafinanciero.rest.dto.ApoderadoDTO;
import org.sistemafinanciero.rest.dto.SocioDTO;
import org.sistemafinanciero.service.nt.PersonaNaturalServiceNT;
import org.sistemafinanciero.service.nt.SessionServiceNT;
import org.sistemafinanciero.service.nt.SocioServiceNT;
import org.sistemafinanciero.service.ts.SocioServiceTS;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;

public class SocioRESTService implements SocioREST {

    private final static String baseUrl = "/socios";
    //private final static String cartillaURL = "D:\\cartilla";
    private final static String cartillaURL = "//usr//share//jboss//archivos//cartillaInformacion//";

    @EJB
    private SocioServiceNT socioServiceNT;

    @EJB
    private SocioServiceTS socioServiceTS;

    @EJB
    private PersonaNaturalServiceNT personaNaturalServiceNT;

    @EJB
    private SessionServiceNT sessionServiceNT;

    @Override
    public Response listAll(String filterText, Boolean estadoCuentaAporte, Boolean estadoSocio, Integer offset,
            Integer limit) {
        List<SocioView> list = socioServiceNT.findAllView(filterText, estadoCuentaAporte, estadoSocio, offset,
                limit);
        Response response = Response.status(Response.Status.OK).entity(list).build();
        return response;
    }

    @Override
    public Response listAll(TipoPersona tipoPersona, BigInteger idTipoDocumento, String numeroDocumento) {
        SocioView socio = socioServiceNT.find(tipoPersona, idTipoDocumento, numeroDocumento);
        Response response = Response.status(Response.Status.OK).entity(socio).build();
        return response;
    }

    @Override
    public Response countAll() {
        int count = socioServiceNT.count();
        Response response = Response.status(Response.Status.OK).entity(count).build();
        return response;
    }

    @Override
    public Response findById(BigInteger id) {
        SocioView socio = socioServiceNT.findById(id);
        Response response = Response.status(Response.Status.OK).entity(socio).build();
        return response;
    }

    @Override
    public Response getCuentaAporte(BigInteger id) {
        CuentaAporte cuentaAporte = socioServiceNT.getCuentaAporte(id);
        Response response = Response.status(Response.Status.OK).entity(cuentaAporte).build();
        return response;
    }

    @Override
    public Response congelarCuentaAporte(BigInteger id) {
        Response response;
        try {
            socioServiceTS.congelarCuentaAporte(id);
            response = Response.status(Response.Status.NO_CONTENT).build();
        } catch (RollbackFailureException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        }
        return response;
    }

    @Override
    public Response descongelarCuentaAporte(BigInteger id) {
        Response response;
        try {
            socioServiceTS.descongelarCuentaAporte(id);
            response = Response.status(Response.Status.NO_CONTENT).build();
        } catch (RollbackFailureException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        }
        return response;
    }

    @Override
    public Response getApoderado(BigInteger id) {
        PersonaNatural apoderado = socioServiceNT.getApoderado(id);
        Response response = Response.status(Response.Status.OK).entity(apoderado).build();
        return response;
    }

    @Override
    public Response cambiarApoderado(BigInteger idSocio, ApoderadoDTO apoderado) {
        Response response;
        BigInteger idTipoDocumento = apoderado.getIdTipoDocumento();
        String numeroDocumento = apoderado.getNumeroDocumento();
        PersonaNatural personaNatural = personaNaturalServiceNT.find(idTipoDocumento, numeroDocumento);
        if (personaNatural != null) {
            BigInteger idPersonaNatural = personaNatural.getIdPersonaNatural();
            try {
                socioServiceTS.cambiarApoderado(idSocio, idPersonaNatural);
                response = Response.status(Response.Status.NO_CONTENT).build();
            } catch (RollbackFailureException e) {
                Jsend jsend = Jsend.getErrorJSend(e.getMessage());
                response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
            }
        } else {
            Jsend jsend = Jsend.getErrorJSend("Persona no encontrada");
            response = Response.status(Response.Status.NOT_FOUND).entity(jsend).build();
        }
        return response;
    }

    @Override
    public Response eliminarApoderado(BigInteger idSocio) {
        Response response;
        try {
            socioServiceTS.deleteApoderado(idSocio);
            response = Response.status(Response.Status.NO_CONTENT).build();
        } catch (RollbackFailureException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        }
        return response;
    }

    @Override
    public Response getCuentasBancarias(BigInteger id) {
        List<CuentaBancariaView> list = socioServiceNT.getCuentasBancarias(id);
        Response response = Response.status(Response.Status.OK).entity(list).build();
        return response;
    }

    @Override
    public Response getAportesHistorial(BigInteger idSocio, Long desde, Long hasta) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Response createSocio(SocioDTO socio) {
        Response response;

        TipoPersona tipoPersona = socio.getTipoPersona();
        BigInteger idDocSocio = socio.getIdTipoDocumentoSocio();
        String numDocSocio = socio.getNumeroDocumentoSocio();
        BigInteger idDocApoderado = socio.getIdTipoDocumentoApoderado();
        String numDocApoderado = socio.getNumeroDocumentoApoderado();

        Agencia agencia = sessionServiceNT.getAgenciaOfSession();
        PersonaNatural apoderado = null;
        if (idDocApoderado != null && numDocApoderado != null)
            apoderado = personaNaturalServiceNT.find(idDocApoderado, numDocApoderado);

        try {
            SocioView socioView = new SocioView();
            socioView.setCodigoAgencia(agencia.getCodigo());
            socioView.setTipoPersona(tipoPersona);
            socioView.setIdTipoDocumento(idDocSocio);
            socioView.setNumeroDocumento(numDocSocio);
            if (apoderado != null)
                socioView.setIdApoderado(apoderado.getIdPersonaNatural());

            BigInteger idSocio = socioServiceTS.create(socioView);
            URI resource = new URI(baseUrl + "/" + idSocio.toString());
            response = Response.created(resource).entity(Jsend.getSuccessJSend(idSocio)).build();
        } catch (PreexistingEntityException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.CONFLICT).entity(jsend).build();
        } catch (RollbackFailureException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        } catch (URISyntaxException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        }
        return response;
    }

    @Override
    public Response desactivarSocio(BigInteger id) {
        Response response;
        try {
            socioServiceTS.inactivarSocio(id);
            response = Response.status(Response.Status.NO_CONTENT).build();
        } catch (RollbackFailureException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        }
        return response;
    }

    @Override
    public Response getCartillaInformacion(BigInteger id) {
        OutputStream file;

        // CuentaBancariaView cuentaBancaria =
        // cuentaBancariaServiceNT.findById(id);
        SocioView socio = socioServiceNT.findById(id);
        CuentaAporte cuentaAporte = socioServiceNT.getCuentaAporte(id);

        Moneda moneda = cuentaAporte.getMoneda();

        SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy");
        BaseColor baseColor = BaseColor.LIGHT_GRAY;
        Font font = FontFactory.getFont("Arial", 10f);
        Font fontBold = FontFactory.getFont("Arial", 10f, Font.BOLD);

        try {
            file = new FileOutputStream(new File(cartillaURL + "\\" + id + ".pdf"));
            Document document = new Document(PageSize.A4);// *4
            PdfWriter writer = PdfWriter.getInstance(document, file);
            document.open();

            /******************* TITULO ******************/
            //Image img = Image.getInstance("/images/logo_coop_contrato.png");
            Image img = Image.getInstance("//usr//share//jboss//archivos//logoCartilla//logo_coop_contrato.png");
            img.setAlignment(Image.LEFT | Image.UNDERLYING);
            document.add(img);

            Paragraph parrafoPrincipal = new Paragraph();

            parrafoPrincipal.setSpacingAfter(40);
            parrafoPrincipal.setSpacingBefore(50);
            parrafoPrincipal.setAlignment(Element.ALIGN_CENTER);
            parrafoPrincipal.setIndentationLeft(100);
            parrafoPrincipal.setIndentationRight(50);

            Chunk titulo = new Chunk("CARTILLA DE INFORMACIN\n");
            Font fuenteTitulo = new Font();
            fuenteTitulo.setSize(18);
            fuenteTitulo.setFamily("Arial");
            fuenteTitulo.setStyle(Font.BOLD | Font.UNDERLINE);

            titulo.setFont(fuenteTitulo);
            parrafoPrincipal.add(titulo);

            Chunk subTitulo = new Chunk("APERTURA CUENTA DE APORTE\n");
            Font fuenteSubtitulo = new Font();
            fuenteSubtitulo.setSize(13);
            fuenteSubtitulo.setFamily("Arial");
            fuenteSubtitulo.setStyle(Font.BOLD | Font.UNDERLINE);

            subTitulo.setFont(fuenteSubtitulo);
            parrafoPrincipal.add(subTitulo);
            document.add(parrafoPrincipal);

            /******************* DATOS BASICOS DEL SOCIO **********************/
            PdfPTable table1 = new PdfPTable(4);
            table1.setWidthPercentage(100);

            PdfPCell cabecera1 = new PdfPCell(new Paragraph("DATOS BASICOS DEL SOCIO", fontBold));
            cabecera1.setColspan(4);
            cabecera1.setBackgroundColor(baseColor);

            PdfPCell cellCodigoSocio = new PdfPCell(new Paragraph("Codigo Socio:", fontBold));
            cellCodigoSocio.setColspan(1);
            cellCodigoSocio.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellCodigoSocioValue = new PdfPCell(new Paragraph(socio.getIdsocio().toString(), font));
            cellCodigoSocioValue.setColspan(3);
            cellCodigoSocioValue.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellApellidosNombres = new PdfPCell(new Paragraph(
                    socio.getTipoPersona().equals(TipoPersona.NATURAL) ? "Apellidos y Nombres:" : "Razn Social:",
                    fontBold));
            cellApellidosNombres.setColspan(1);
            cellApellidosNombres.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellApellidosNombresValue = new PdfPCell(new Paragraph(socio.getSocio(), font));
            cellApellidosNombresValue.setColspan(3);
            cellApellidosNombresValue.setBorder(Rectangle.NO_BORDER);

            table1.addCell(cabecera1);
            table1.addCell(cellCodigoSocio);
            table1.addCell(cellCodigoSocioValue);
            table1.addCell(cellApellidosNombres);
            table1.addCell(cellApellidosNombresValue);

            PdfPCell cellDNI = new PdfPCell(new Paragraph(socio.getTipoDocumento() + ":", fontBold));
            cellDNI.setColspan(1);
            cellDNI.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellDNIValue = new PdfPCell(new Paragraph(socio.getNumeroDocumento(), font));
            cellDNIValue.setColspan(1);
            cellDNIValue.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellFechaNaciemiento = new PdfPCell(
                    new Paragraph(socio.getTipoPersona().equals(TipoPersona.NATURAL) ? "Fecha de Nacimiento:"
                            : "Fecha de Constitucin", fontBold));
            cellFechaNaciemiento.setColspan(1);
            cellFechaNaciemiento.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellFechaNacimientoValue = new PdfPCell(
                    new Paragraph(DATE_FORMAT.format(socio.getFechaNacimiento()), font));
            cellFechaNacimientoValue.setColspan(1);
            cellFechaNacimientoValue.setBorder(Rectangle.NO_BORDER);

            table1.addCell(cellDNI);
            table1.addCell(cellDNIValue);
            table1.addCell(cellFechaNaciemiento);
            table1.addCell(cellFechaNacimientoValue);

            document.add(table1);
            document.add(new Paragraph("\n"));

            /******************* PRODUCTOS Y SERVICIOS **********************/
            PdfPTable table3 = new PdfPTable(4);
            table3.setWidthPercentage(100);

            PdfPCell cabecera3 = new PdfPCell(new Paragraph("PRODUCTOS Y SERVICIOS", fontBold));
            cabecera3.setColspan(4);
            cabecera3.setBackgroundColor(baseColor);
            table3.addCell(cabecera3);

            PdfPCell cellProductoCab = new PdfPCell(new Paragraph("Producto", fontBold));
            PdfPCell cellMonedaCab = new PdfPCell(new Paragraph("Moneda", fontBold));
            PdfPCell cellNumeroCuentaCab = new PdfPCell(new Paragraph("Nmero Cuenta", fontBold));
            PdfPCell cellFechaAperturaCab = new PdfPCell(new Paragraph("Fecha Apertura", fontBold));
            cellProductoCab.setBorder(Rectangle.NO_BORDER);
            cellMonedaCab.setBorder(Rectangle.NO_BORDER);
            cellNumeroCuentaCab.setBorder(Rectangle.NO_BORDER);
            cellFechaAperturaCab.setBorder(Rectangle.NO_BORDER);
            table3.addCell(cellProductoCab);
            table3.addCell(cellMonedaCab);
            table3.addCell(cellNumeroCuentaCab);
            table3.addCell(cellFechaAperturaCab);

            PdfPCell cellProducto = new PdfPCell(new Paragraph("CUENTA DE APORTE", font));
            PdfPCell cellMoneda = new PdfPCell(new Paragraph(moneda.getDenominacion(), font));
            PdfPCell cellNumeroCuenta = new PdfPCell(new Paragraph(cuentaAporte.getNumeroCuenta(), font));
            PdfPCell cellFechaApertura = new PdfPCell(
                    new Paragraph(DATE_FORMAT.format(socio.getFechaAsociado()), font));
            cellProducto.setBorder(Rectangle.NO_BORDER);
            cellMoneda.setBorder(Rectangle.NO_BORDER);
            cellNumeroCuenta.setBorder(Rectangle.NO_BORDER);
            cellFechaApertura.setBorder(Rectangle.NO_BORDER);
            table3.addCell(cellProducto);
            table3.addCell(cellMoneda);
            table3.addCell(cellNumeroCuenta);
            table3.addCell(cellFechaApertura);

            document.add(table3);
            document.add(new Paragraph("\n"));

            /******************* DECLARACIONES Y FIRMAS **********************/
            PdfPTable table4 = new PdfPTable(1);
            table4.setWidthPercentage(100);

            PdfPCell cabecera4 = new PdfPCell(new Paragraph("DECLARACIONES Y FIRMAS", fontBold));
            cabecera4.setBackgroundColor(baseColor);
            table4.addCell(cabecera4);

            Paragraph parrafoDeclaraciones = new Paragraph();
            Chunk parrafo1 = new Chunk(
                    "Los aportes individuales sern pagados por los Asociados en forma peridica de conformidad con lo establecido en el Estatuto y el Reglamento de Aportes Sociales de la Cooperativa. El aporte social ordinario de cada Asociado ser mnimo de S/. 10.00 Nuevos Soles si es mayor de edad y S/. 5.00 Nuevos Soles si es menor de edad.\n\n",
                    font);
            parrafo1.setLineHeight(13);
            parrafoDeclaraciones.add(parrafo1);

            Chunk parrafoDeclaracionesFinalesCab = new Chunk("DECLARACIN FINAL DEL CLIENTE: ", fontBold);

            Paragraph parrafoDeclaracionesFinalesValue = new Paragraph();
            Chunk parrafo2 = new Chunk(
                    "Declaro haber leido previamente las condiciones establecidas en el Contrato de Depsito y la Cartilla de Informacin, asi como haber sido instruido acerca de los alcances y significados de los trminos y condiciones establecidos en dicho documento habiendo sido absueltas y aclaradas a mi satisfaccin todas las consultas efectuadas y/o dudas, suscribe el presente documento en duplicado y con pleno y exacto conocimiento de los mismos.\n",
                    font);
            parrafo2.setLineHeight(13);
            parrafoDeclaracionesFinalesValue.add(parrafo2);

            parrafoDeclaraciones.add(parrafoDeclaracionesFinalesCab);
            parrafoDeclaraciones.add(parrafoDeclaracionesFinalesValue);

            PdfPCell declaraciones = new PdfPCell(parrafoDeclaraciones);
            declaraciones.setBorder(Rectangle.NO_BORDER);
            declaraciones.setHorizontalAlignment(Element.ALIGN_JUSTIFIED);
            table4.addCell(declaraciones);

            document.add(table4);

            // firmas
            Chunk firmaP01 = new Chunk("..........................................");
            Chunk firmaP02 = new Chunk("..........................................\n");
            Chunk firma01 = new Chunk("Caja Ventura");
            Chunk firma02 = new Chunk("El Socio     ");

            Paragraph firmas = new Paragraph("\n\n\n\n\n\n");
            firmas.setAlignment(Element.ALIGN_CENTER);

            firmas.add(firmaP01);
            firmas.add(Chunk.SPACETABBING);
            firmas.add(Chunk.SPACETABBING);
            firmas.add(firmaP02);

            firmas.add(firma01);
            firmas.add(Chunk.SPACETABBING);
            firmas.add(Chunk.SPACETABBING);
            firmas.add(Chunk.SPACETABBING);
            firmas.add(Chunk.SPACETABBING);
            firmas.add(firma02);

            document.add(firmas);

            document.close();
            file.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        PdfReader reader;
        try {
            reader = new PdfReader(cartillaURL + "\\" + id + ".pdf");
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            PdfStamper pdfStamper = new PdfStamper(reader, out);
            AcroFields acroFields = pdfStamper.getAcroFields();
            acroFields.setField("field_title", "test");
            pdfStamper.close();
            reader.close();
            return Response.ok(out.toByteArray()).type("application/pdf").build();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Jsend.getErrorJSend("No encontrado"))
                .build();
    }

    @Override
    public Response getBeneficiarios(BigInteger id) {
        Set<Beneficiario> list = socioServiceNT.getBeneficiarios(id);
        Response response = Response.status(Response.Status.CREATED).entity(list).build();
        return response;
    }

    @Override
    public Response getBeneficiario(BigInteger id, BigInteger idBeneficiario) {
        Beneficiario beneficiario = socioServiceNT.findBeneficiarioById(idBeneficiario);
        Response response = Response.status(Response.Status.OK).entity(beneficiario).build();
        return response;
    }

    @Override
    public Response createBeneficiario(BigInteger id, Beneficiario beneficiario) {
        Response response;
        try {
            BigInteger idBeneficiario = socioServiceTS.addBeneficiario(id, beneficiario);
            response = Response.status(Response.Status.CREATED).entity(Jsend.getSuccessJSend(idBeneficiario))
                    .build();
        } catch (RollbackFailureException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        }
        return response;
    }

    @Override
    public Response deleteBeneficiario(BigInteger id, BigInteger idBeneficiario) {
        try {
            socioServiceTS.deleteBeneficiario(idBeneficiario);
            return Response.status(Status.OK).build();
        } catch (NonexistentEntityException e) {
            return Response.status(Response.Status.NOT_FOUND).build();
        } catch (RollbackFailureException e) {
            return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
        }
    }

    @Override
    public Response updateBeneficiario(BigInteger id, BigInteger idBeneficiario, Beneficiario beneficiario) {
        Response response;
        try {
            socioServiceTS.updateBeneficiario(idBeneficiario, beneficiario);
            response = Response.status(Response.Status.NO_CONTENT).build();
        } catch (NonexistentEntityException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.NOT_FOUND).entity(jsend).build();
        } catch (PreexistingEntityException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.CONFLICT).entity(jsend).build();
        } catch (RollbackFailureException e) {
            Jsend jsend = Jsend.getErrorJSend(e.getMessage());
            response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(jsend).build();
        }
        return response;
    }

}