Advertisement
Guest User

Untitled

a guest
May 16th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.39 KB | None | 0 0
  1. package com.mycompany.tqs.gohouse;
  2.  
  3. import dbClasses.PlatformUser;
  4. import dbClasses.University;
  5. import java.time.LocalDate;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import java.util.Set;
  9. import javax.ejb.EJB;
  10. import javax.enterprise.context.RequestScoped;
  11. import javax.inject.Singleton;
  12. import javax.ws.rs.Consumes;
  13. import javax.ws.rs.DELETE;
  14. import javax.ws.rs.FormParam;
  15. import javax.ws.rs.GET;
  16. import javax.ws.rs.POST;
  17. import javax.ws.rs.PUT;
  18. import javax.ws.rs.Path;
  19. import javax.ws.rs.PathParam;
  20. import javax.ws.rs.Produces;
  21. import javax.ws.rs.core.MediaType;
  22.  
  23. @Path("users")
  24. @RequestScoped
  25. public class GoHouseREST_Resource {
  26.  
  27.    @EJB
  28.    DBHandler dbH;
  29.  
  30.    /**
  31.     * Lista todos os utilizadores
  32.     * @return = String JSON listando os utilizadores
  33.     */
  34.    @GET
  35.    @Path("list")
  36.    @Produces({"application/json"})
  37.    public String listAllUsers() {
  38.        List<PlatformUser> pU = dbH.getNMostPopularUsers(5);
  39.        String out = "{\n"
  40.                + "\"users\": [\n";
  41.        for (PlatformUser p: pU){
  42.            out = out.concat(String.format("{\n"
  43.                 + "\"email\": \"%s\",\n"
  44.                 + "\"name\": \"%s\",\n"
  45.                 + "\"age\": \"%d\"\n},", p.getEmail(),p.getName(),p.getAge()));
  46.        }
  47.        out = out.substring(0, out.length()-1) + "]\n}";
  48.        return out;
  49.    }
  50.    
  51.    
  52.    /**
  53.     * Lista 1 utilizador, pelo seu email
  54.     * @param email Email para procurar 1 utilizador
  55.     * @return 1 utilizador, em formato JSON
  56.     */
  57.    @GET
  58.    @Path("getOne-email:{email}")
  59.    @Produces({"application/json"})
  60.    public String getOneUser(@PathParam("email") String email){
  61.            PlatformUser p = dbH.getSingleUser(email);
  62.        String out = String.format("{\n"
  63.                + "\"user\": [\n{\n"
  64.                 + "\"email\": \"%s\",\n"
  65.                 + "\"name\": \"%s\",\n"
  66.                 + "\"age\": \"%d\"\n}]\n}", p.getEmail(),p.getName(),p.getAge());
  67.        
  68.    return out;
  69.    }
  70.    
  71.    /**
  72.     * Lista os utilizadores mais populares, limitado pelo 'number'.
  73.     * @param number O numero de utilizadores populares para revelar
  74.     * @return Os utilizadores mais populares
  75.     */
  76.    @GET
  77.    @Path("listPopular-n:{number}")
  78.    @Produces({"application/json"})
  79.    public String listPopularUsers(@PathParam("number") String number) {
  80.        List<PlatformUser> pU = dbH.getNMostPopularUsers(Integer.parseInt(number));
  81.        String out = "{\n"
  82.                + "\"users\": [\n";
  83.        for (PlatformUser p: pU){
  84.            out = out.concat(String.format("{\n"
  85.                 + "\"email\": \"%s\",\n"
  86.                 + "\"name\": \"%s\",\n"
  87.                 + "\"age\": \"%d\"\n},", p.getEmail(),p.getName(),p.getAge()));
  88.        }
  89.        out = out.substring(0, out.length()-1) + "]\n}";
  90.        return out;
  91.    }
  92.    
  93.    /**
  94.     * Regista um utilizador, definindo o seu Email e nome.
  95.     * @param email O Email do utilizador novo.
  96.     * @param name O nome do utilizador novo.
  97.     * @return Mensagem confirmando se o utilizador foi criado.
  98.     */
  99.    /*@POST
  100.    @Path("register-email:{email},name:{name}")
  101.    @Produces({"application/json"})
  102.    public String registerUser(@PathParam("email") String email,@PathParam("name") String name) {
  103.         return (dbH.registerUser(email, name, LocalDate.MIN, true, true, new University("", "")) == true)
  104.                 ? "{\"success\":true}" : "{\"success\":false}";
  105.    }
  106. */
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement