com.ChiriChat.DataAccessObject.DAOWebServer.ChiriChatMensajesDAO.java Source code

Java tutorial

Introduction

Here is the source code for com.ChiriChat.DataAccessObject.DAOWebServer.ChiriChatMensajesDAO.java

Source

/*
* Copyright (C) 2014 Alejandro Moreno Jimenez | alejandroooo887@gmail.com
*                Danny Riofrio Jimenez | superdanny.91@gmail.com
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>. *
*/

package com.ChiriChat.DataAccessObject.DAOWebServer;

import android.util.Log;
import com.ChiriChat.DataAccessObject.InterfacesDAO.IMensajesDAO;
import com.ChiriChat.model.Mensajes;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by danny on 27/05/14.
 */
public class ChiriChatMensajesDAO implements IMensajesDAO {

    //Creo el objeto hhtpCLient para acceder a la conexion web.
    private HttpClient httpClient = new DefaultHttpClient();

    @Override
    public Mensajes insert(Mensajes dto) throws Exception {

        //Enviamos una peticion post al insert del usuario.
        HttpPost httpPostNewMensaje = new HttpPost("http://chirichatserver.noip.me:85/ws/newMensaje");

        //Creo el objeto Jason con los datos del contacto que se registra en la app.
        JSONObject newUsuario = new JSONObject();
        try {
            newUsuario.put("idConver", dto.getIdConversacion());
            newUsuario.put("idUsuario", dto.getIdUsuario());
            newUsuario.put("texto", dto.getCadena());
        } catch (JSONException e) {
            e.printStackTrace();
        }

        List parametros = new ArrayList();
        //Aade a la peticion post el parametro json, que contiene los datos a insertar.(json)
        parametros.add(new BasicNameValuePair("json", newUsuario.toString()));

        //Creamos la entidad con los datos que le hemos pasado
        httpPostNewMensaje.setEntity(new UrlEncodedFormEntity(parametros));

        //Objeto para poder obtener respuesta del server
        HttpResponse response = httpClient.execute(httpPostNewMensaje);
        //Obtenemos el codigo de la respuesta
        int respuesta = response.getStatusLine().getStatusCode();
        Log.w("Respueta", "" + respuesta);
        //Si respuesta 200 devuelvo mi usuario , si no devolvere null
        if (respuesta == 200) {

            //Nos conectamos para recibir los datos de respuesta
            HttpEntity entity = response.getEntity();
            //Creamos el InputStream
            InputStream is = entity.getContent();
            //Leemos el inputStream
            String temp = StreamToString(is);
            //Creamos el JSON con la cadena del inputStream
            Log.d("Cadena JSON", temp.toString());
            JSONObject jsonRecibido = new JSONObject(temp);

            Log.d("InputStreamReader", temp.toString());
            Log.d("JSON ==>", jsonRecibido.toString());

            Mensajes mensaje = new Mensajes(jsonRecibido);

            return mensaje;
        }

        return null;
    }

    @Override
    public boolean update(Mensajes dto) throws Exception {
        return false;
    }

    @Override
    public boolean delete(Mensajes dto) throws Exception {
        return false;
    }

    @Override
    public Mensajes read(int id) throws Exception {
        return null;
    }

    @Override
    public List<Mensajes> getAll() throws Exception {
        return null;
    }

    @Override
    public List<Mensajes> mensajesDesde(int mensajeId) {
        return null;
    }

    @Override
    public String StreamToString(InputStream is) {
        //Creamos el Buffer
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line = null;
        try {
            //Bucle para leer todas las lineas
            //En este ejemplo al ser solo 1 la respuesta
            //Pues no hara falta
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //retornamos el codigo limpio
        return sb.toString();
    }
}