br.edu.ifrn.pdscfyp.Controller.ProfissionalController.java Source code

Java tutorial

Introduction

Here is the source code for br.edu.ifrn.pdscfyp.Controller.ProfissionalController.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 br.edu.ifrn.pdscfyp.Controller;

import br.edu.ifrn.pdscfyp.Model.Avaliacao;
import br.edu.ifrn.pdscfyp.Model.Profissional;
import br.edu.ifrn.pdscfyp.Model.Usuario;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
 *
 * @author mateus
 */
@Controller
public class ProfissionalController {

    @RequestMapping("/profissionais")
    public String ListProfissionais(HttpSession session, Model model) {
        Usuario u = (Usuario) session.getAttribute("usuarioLogado");

        model.addAttribute("usuarioLogado", u);

        Set<Profissional> profissionais = Profissional.getProfissionais();

        model.addAttribute("profissionais", profissionais);

        return "list_pro";
    }

    @RequestMapping("/ranking")
    public String RankingProfissionais(HttpSession session, Model model) {
        Usuario u = (Usuario) session.getAttribute("usuarioLogado");

        model.addAttribute("usuarioLogado", u);

        Map<Profissional, Integer> indexes = new HashMap();
        int indice = 0;

        Set<Profissional> profissionais = Profissional.getProfissionais();
        Set<Profissional> profissionaisOrdenados = new TreeSet();

        for (Profissional p : profissionais) {
            profissionaisOrdenados.add(p);
        }

        for (Profissional p : profissionaisOrdenados) {
            indexes.put(p, ++indice);
        }

        model.addAttribute("profissionaisOrdenados", profissionaisOrdenados);
        model.addAttribute("indexes", indexes);

        return "ranking_pro";
    }

    @RequestMapping("/mapa")
    public String MostrarMapa(HttpSession session, Model model) {
        Usuario u = (Usuario) session.getAttribute("usuarioLogado");

        ArrayList<ArrayList<String>> pontos = new ArrayList<>();

        Client c = Client.create();
        WebResource wr = c.resource("https://apifyp.herokuapp.com/GetLocalizacoes/");
        String json = wr.get(String.class);

        Gson gson = new Gson();
        pontos = gson.fromJson(json, new TypeToken<List<List<String>>>() {
        }.getType());

        model.addAttribute("usuarioLogado", u);

        model.addAttribute("pontos", pontos);

        return "dashboard";
    }

    @RequestMapping("/cadastro")
    public String CadastrarProfissional(HttpSession session, Model model) {
        Usuario u = (Usuario) session.getAttribute("usuarioLogado");

        model.addAttribute("usuarioLogado", u);

        return "cadastro";
    }

    @RequestMapping(value = "/cadastrar", method = RequestMethod.POST)
    public String Cadastro(@RequestParam("nome") String nome, @RequestParam("email") String email,
            @RequestParam("login") String login, @RequestParam("senha") String senha,
            @RequestParam("isProfissional") String isProfissional, @RequestParam("rua") String rua,
            @RequestParam("cep") String cep, @RequestParam("numero") String numero,
            @RequestParam("complemento") String complemento, @RequestParam("cidade") String cidade,
            @RequestParam("estado") String estado, @RequestParam("descricao") String descricao,
            @RequestParam("profissao") String profissao) {

        if ("profissional".equals(isProfissional)) {

            Profissional p = new Profissional(nome, email, login, senha, true, rua, cep, numero, complemento,
                    cidade, estado, descricao, profissao);

            Profissional.addProfissional(p);
        } else {
            Usuario u = new Usuario(nome, email, login, senha, false, rua, cep, numero, complemento, cidade,
                    estado);

            Usuario.addUsuario(u);
        }

        return "redirect:index";
    }

    @RequestMapping(value = "/buscar", method = RequestMethod.GET)
    public String Buscar(HttpSession session, Model model, @RequestParam("profissao") String profissao) {
        Usuario u = (Usuario) session.getAttribute("usuarioLogado");

        model.addAttribute("usuarioLogado", u);

        Set<Profissional> profissionais = Profissional.getProfissionaisByProfissao(profissao);
        Set<Profissional> profissionaisOrder = new TreeSet();

        for (Profissional profissional : profissionais) {
            profissionaisOrder.add(profissional);
        }

        model.addAttribute("profissionais", profissionaisOrder);

        return "buscar";
    }

    @RequestMapping(value = "/profissional", method = RequestMethod.GET)
    public String BuscarProfissionalById(HttpSession session, Model model, @RequestParam("id") String id) {
        Usuario u = (Usuario) session.getAttribute("usuarioLogado");

        model.addAttribute("usuarioLogado", u);

        Profissional p = Profissional.getProfissionalById(id);

        model.addAttribute("profissional", p);

        // apenas um comentrio
        return "perfil_pro";
    }

@CrossOrigin
@RequestMapping(value = "/adicionarAvaliacao", method = RequestMethod.POST)
public void adicionarAvaliao(@RequestBody String rb) {
    Gson gson = new Gson();

    System.out.println(rb);
}
}