package com.odc.beachodc.webservices;
import com.odc.beachodc.db.models.Checkin;
import com.odc.beachodc.db.models.Comentario;
import com.odc.beachodc.db.models.Imagen;
import com.odc.beachodc.db.models.MensajeBotella;
import com.odc.beachodc.db.models.Playa;
import org.json.JSONObject;
import java.sql.SQLOutput;
import java.util.Calendar;
import java.util.Date;
/**
* Created by Paco on 15/07/2014.
*/
public class JSONToModel {
public static Playa toPlaya (JSONObject json){
try {
String idserver = json.optString("_id");
String nombre = json.optString("nombre");
String geo = json.optString("geo");
geo = geo.replace("[", "");
geo = geo.replace("]", "");
String[] loc = geo.split(",");
Double latitud = Double.valueOf(loc[1]);
Double longitud = Double.valueOf(loc[0]);
Boolean banderaazul = json.optBoolean("banderaAzul");
String dificultadacceso = json.optString("dificultadAcceso");
String limpieza = json.optString("limpieza");
String tipoarena = json.optString("tipoArena");
Double valoracion = json.getDouble("valoracion");
Boolean rompeolas = json.optBoolean("rompeolas");
Boolean hamacas = json.optBoolean("hamacas");
Boolean sombrillas = json.optBoolean("sombrillas");
Boolean chiringuitos = json.optBoolean("chiringuitos");
Boolean duchas = json.optBoolean("duchas");
Boolean socorrista = json.optBoolean("socorrista");
Boolean perros = json.optBoolean("perros");
Boolean nudista = json.optBoolean("nudista");
Boolean cerrada = json.optBoolean("cerrada");
String fechaStr = json.optString("checkin");
Date fecha = null;
String webcamURL = json.optString("webcamURL");
try {
if (fechaStr != null){
String[] parts = fechaStr.split("Z");
parts = parts[0].split("T");
String[] dias = parts[0].split("-");
String[] horas = parts[1].split(":");
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, Integer.valueOf(dias[0]));
date.set(Calendar.MONTH, Integer.valueOf(dias[1])-1);
date.set(Calendar.DAY_OF_MONTH, Integer.valueOf(dias[2]));
date.set(Calendar.HOUR_OF_DAY, Integer.valueOf(horas[0]));
date.set(Calendar.MINUTE, Integer.valueOf(horas[1]));
date.set(Calendar.SECOND, Double.valueOf(horas[2]).intValue());
fecha = date.getTime();
}
} catch (Exception e){}
return new Playa(idserver, nombre, latitud, longitud, banderaazul, dificultadacceso, limpieza, tipoarena, valoracion, rompeolas, hamacas, sombrillas, chiringuitos, duchas, socorrista, fecha, webcamURL, perros, nudista, cerrada);
} catch (Exception e){
return null;
}
}
public static Checkin toCheckin (JSONObject json){
try {
String idplaya = json.optString("idPlaya");
String idusuario = json.optString("idUsuario");
String fechaStr = json.optString("fecha");
Date fecha = null;
try {
if (fechaStr != null){
String[] parts = fechaStr.split("Z");
parts = parts[0].split("T");
String[] dias = parts[0].split("-");
String[] horas = parts[1].split(":");
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, Integer.valueOf(dias[0]));
date.set(Calendar.MONTH, Integer.valueOf(dias[1])-1);
date.set(Calendar.DAY_OF_MONTH, Integer.valueOf(dias[2]));
date.set(Calendar.HOUR_OF_DAY, Integer.valueOf(horas[0]));
date.set(Calendar.MINUTE, Integer.valueOf(horas[1]));
date.set(Calendar.SECOND, Double.valueOf(horas[2]).intValue());
fecha = date.getTime();
}
} catch (Exception e){}
return new Checkin(idplaya, fecha, idusuario);
} catch (Exception e){
return null;
}
}
public static Comentario toComentario (JSONObject json){
try {
String idplaya = json.optString("idPlaya");
String idusuario = json.optString("idUsuario");
String comentario = json.optString("comentario");
Integer valoracion = json.optInt("valoracion");
String fechaStr = json.optString("fecha");
String nombreUsuarioStr = json.optString("nombreUsuario");
Date fecha = null;
try {
if (fechaStr != null){
String[] parts = fechaStr.split("Z");
parts = parts[0].split("T");
String[] dias = parts[0].split("-");
String[] horas = parts[1].split(":");
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, Integer.valueOf(dias[0]));
date.set(Calendar.MONTH, Integer.valueOf(dias[1])-1);
date.set(Calendar.DAY_OF_MONTH, Integer.valueOf(dias[2]));
date.set(Calendar.HOUR_OF_DAY, Integer.valueOf(horas[0]));
date.set(Calendar.MINUTE, Integer.valueOf(horas[1]));
date.set(Calendar.SECOND, Double.valueOf(horas[2]).intValue());
fecha = date.getTime();
}
} catch (Exception e){}
return new Comentario(idusuario, idplaya, comentario, nombreUsuarioStr, fecha, valoracion);
} catch (Exception e){
return null;
}
}
public static MensajeBotella toMensajeEnBotella (JSONObject json){
try {
String idplayaorigen = json.optString("idPlayaOrigen");
String idplayadestino = json.optString("idPlayaDestino");
String nombreplayadestino = json.optString("nombrePlayaDestino");
String idusuario = json.optString("idUsuario");
String nombreusuario = json.optString("nombreUsuario");
String mensaje = json.optString("mensaje");
String fechaStr = json.optString("fecha");
Date fecha = null;
try {
if (fechaStr != null){
String[] parts = fechaStr.split("Z");
parts = parts[0].split("T");
String[] dias = parts[0].split("-");
String[] horas = parts[1].split(":");
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, Integer.valueOf(dias[0]));
date.set(Calendar.MONTH, Integer.valueOf(dias[1])-1);
date.set(Calendar.DAY_OF_MONTH, Integer.valueOf(dias[2]));
date.set(Calendar.HOUR_OF_DAY, Integer.valueOf(horas[0]));
date.set(Calendar.MINUTE, Integer.valueOf(horas[1]));
date.set(Calendar.SECOND, Double.valueOf(horas[2]).intValue());
fecha = date.getTime();
}
} catch (Exception e){}
return new MensajeBotella(idusuario, nombreusuario, idplayadestino, idplayaorigen, nombreplayadestino, fecha, mensaje);
} catch (Exception e){
return null;
}
}
public static Imagen toImagen (JSONObject json){
try {
String idplaya = json.optString("idPlaya");
String idusuario = json.optString("idUsuario");
String comentario = json.optString("comentario");
String link = json.optString("link");
String fechaStr = json.optString("fecha");
String nombreUsuarioStr = json.optString("nombreUsuario");
Date fecha = null;
try {
if (fechaStr != null){
String[] parts = fechaStr.split("Z");
parts = parts[0].split("T");
String[] dias = parts[0].split("-");
String[] horas = parts[1].split(":");
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, Integer.valueOf(dias[0]));
date.set(Calendar.MONTH, Integer.valueOf(dias[1])-1);
date.set(Calendar.DAY_OF_MONTH, Integer.valueOf(dias[2]));
date.set(Calendar.HOUR_OF_DAY, Integer.valueOf(horas[0]));
date.set(Calendar.MINUTE, Integer.valueOf(horas[1]));
date.set(Calendar.SECOND, Double.valueOf(horas[2]).intValue());
fecha = date.getTime();
}
} catch (Exception e){}
return new Imagen(idusuario, idplaya, comentario, nombreUsuarioStr, fecha, link);
} catch (Exception e){
return null;
}
}
}