package com.geored.servicios; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import com.geored.servicios.json.CategoriaJSON; import com.geored.servicios.json.EventoJSON; import com.geored.servicios.json.InvitacionJSON; import com.geored.servicios.json.NotificacionJSON; import com.geored.servicios.json.OfertaJSON; import com.geored.servicios.json.PagoJSON; import com.geored.servicios.json.PosicionJSON; import com.geored.servicios.json.UsuarioJSON; @Path("usuarios") public interface ServicioUsuarios { @GET @Path("usuario") @Produces("application/json") UsuarioJSON getUsuario(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response); @GET @Path("contactos/buscar/{query}") @Produces("application/json") List<UsuarioJSON> buscarContactos(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, final String query); @GET @Path("contactos") @Produces("application/json") List<UsuarioJSON> getContactos(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response); @GET @Path("invitaciones") @Produces("application/json") List<InvitacionJSON> getInvitaciones( @HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response); @PUT @Path("invitaciones/{idContacto}") void invitarContacto( @HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, @PathParam("idContacto") final int idContacto); @POST @Path("invitaciones/{idContacto}") void aceptarInvitacion( @HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, @PathParam("idContacto") final int idContacto); @PUT @Path("usuario/{password}") void registrarUsuario(@Context final HttpServletResponse response, @PathParam("password") final String password, final UsuarioJSON usuarioJSON); @POST @Path("usuario/{password}") void modificarUsuario(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, @PathParam("password") final String password, final UsuarioJSON usuarioJSON); @POST @Path("categorias/agregar") void agregarCategorias(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, final List<Integer> categorias); @POST @Path("categorias/borrar") void borrarCategorias(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, final List<Integer> categorias); @GET @Path("categorias") @Produces("application/json") List<CategoriaJSON> getCategorias(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response); @POST @Path("notificaciones") @Produces("application/json") List<NotificacionJSON> getNotificaciones(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, final PosicionJSON posicion); @POST @Path("ofertas/{idOferta}") void comprarOferta(@HeaderParam("Security-Token") final String userToken, @Context HttpServletResponse response, @PathParam("idOferta") final Integer idOferta, final PagoJSON pago); @GET @Path("ofertas/{idLocal}") @Produces("application/json") List<OfertaJSON> getOfertasLocal(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, @PathParam("idLocal") final Integer idLocal); @GET @Path("evento/{idEvento}") @Produces("application/json") EventoJSON getEvento(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, @PathParam("idEvento") final Integer idEvento); @POST @Path("invitacionExterna/{email}") void enviarInvitacionExterna(@HeaderParam("Security-Token") final String userToken, @Context final HttpServletResponse response, @PathParam("email") final String email); }