com.eyem.bean.PostBean.java Source code

Java tutorial

Introduction

Here is the source code for com.eyem.bean.PostBean.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.eyem.bean;

import com.eyem.entity.Post;
import com.eyem.entity.Usuario;
import com.eyem.services.PostService;
import com.eyem.services.UsuarioService;
import java.io.IOException;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.PostConstruct;
import javax.servlet.http.Part;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 *
 * @author Maria
 */
@Component
public class PostBean implements Serializable {

    @Autowired
    PostService postService;

    @Autowired
    UsuarioService usuarioService;

    private Long idPost;
    private String tipo;
    private String contenido;
    private String imagen;
    private String video;
    private Usuario creador;
    private String fechaCreacion;
    private String userEmailPerfil;
    private Part uploadedFile;

    @PostConstruct
    public void init() {

    }

    public void borrarPost(Post p) {
        postService.deletePost(p);
    }

    public Part getUploadedFile() {
        return uploadedFile;
    }

    public void setUploadedFile(Part uploadedFile) {
        this.uploadedFile = uploadedFile;
    }

    public void replicarPost(Post p, String email) {

        Post reEyem;
        // buscar post por ID
        reEyem = postService.findPostById(p.getIdPost());
        if (reEyem != null) {
            // aadir email a la lista del campo post.compartidoPor
            reEyem.getMostradoPor().add(email);

            // borrar el post segun el ID
            postService.deletePost(p);
            // aadir el post temporal anteriormente creado

            postService.crearPost(reEyem);
        }
    }

    public boolean reyemAnterior(Long idPost, String email) {
        boolean prueba = postService.reyemAnterior(idPost, email);
        System.out.println("");
        return postService.reyemAnterior(idPost, email);
    }

    public void crearPost(String email, String tipo) {

        Post p = new Post();
        Usuario u = usuarioService.buscarPorEmail(email);
        p.setContenido(contenido);
        String pattern = "https?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:youtu\\.be\\/|youtube\\.com\\S*[^\\w\\-\\s])([\\w\\-]{11})(?=[^\\w\\-]|$)(?![?=&+%\\w]*(?:['\"][^<>]*>|<\\/a>))[?=&+%\\w]*";
        List<String> mostraporvacio = new ArrayList<>();

        Pattern compiledPattern = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
        if (uploadedFile != null && uploadedFile.getSize() < 20000 && uploadedFile.getSize() > 10000) {
            System.out.println(uploadedFile.getName());
            try {
                long uniqueName = System.currentTimeMillis();
                uploadedFile.write(uniqueName + ".jpg");

                p.setImagen("resources/uploads/" + uniqueName + ".jpg");
                imagen = null;
            } catch (IOException ex) {
                Logger.getLogger(PostBean.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        Matcher matcher = compiledPattern.matcher(imagen);
        while (matcher.find()) {
            System.out.println(matcher.group());
            video = matcher.group();
            imagen = null;
            if (video.contains("/embed/")) {
                p.setVideo(video);
            }
        }

        if (null != imagen && !imagen.isEmpty()) {
            try {
                java.net.URL url = new java.net.URL(imagen);
                Logger.getLogger(PostBean.class.getName()).log(Level.INFO, null,
                        url.toString() + " subido por " + u.getEmail());
                p.setImagen(imagen);
            } catch (MalformedURLException ex) {
                Logger.getLogger(PostBean.class.getName()).log(Level.SEVERE, null,
                        ex + " causado por " + u.getEmail());
                p.setImagen(null);
            }
        }
        p.setIdPost(System.currentTimeMillis());
        p.setTipo(tipo);
        p.setCreador(u);
        p.setMostradoPor(mostraporvacio);

        postService.crearPost(p);
        contenido = null;
        imagen = null;
        uploadedFile = null;

    }

    public List<Post> listaPostPublicos() {
        List<Post> lista = postService.findPublicPost();
        if (lista == null || lista.isEmpty()) {
            return null;
        } else {
            return lista;
        }
    }

    public List<Post> listaPostUsuario(String email, String tipo) {
        return postService.findPostUser(email, tipo);
    }

    public List<Post> listaPostReplicados(String email) {
        return postService.findPostReplicados(email);
    }

    public String getUserEmailPerfil() {
        return userEmailPerfil;
    }

    public void setUserEmailPerfil(String userEmailPerfil) {
        this.userEmailPerfil = userEmailPerfil;
    }

    public String verPerfil(String e) {
        this.userEmailPerfil = e;
        return "verPerfil";
    }

    public String getFechaCreacion() {
        return fechaCreacion;
    }

    public void setFechaCreacion(String fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }

    public Long getIdPost() {
        return idPost;
    }

    public void setIdPost(Long idPost) {
        this.idPost = idPost;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public String getContenido() {
        return contenido;
    }

    public void setContenido(String contenido) {
        this.contenido = contenido;
    }

    public String getImagen() {
        return imagen;
    }

    public void setImagen(String imagen) {
        this.imagen = imagen;
    }

    public String getVideo() {
        return video;
    }

    public void setVideo(String video) {
        this.video = video;
    }

    public Usuario getCreador() {
        return creador;
    }

    public void setCreador(Usuario creador) {
        this.creador = creador;
    }

    public String buscarUsuario() {
        return "verPerfil?faces-redirect=true";
    }

    public String dameImagenDe(String e) {
        return usuarioService.buscarPorEmail(e).getImagen();
    }

    public String dameNombreDe(String e) {
        return usuarioService.buscarPorEmail(e).getNombre();
    }

}