Package es.ua.dccia.rest

Source Code of es.ua.dccia.rest.PeticionResource

/*
* 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 es.ua.dccia.rest;

import es.ua.dccia.Tokens;
import es.ua.dccia.dominio.Firma;
import es.ua.dccia.dominio.Peticion;
import es.ua.dccia.negocio.PeticionBO;
import es.ua.dccia.rest.to.FirmaTO;
import java.net.URI;
import javax.annotation.security.RolesAllowed;
import javax.validation.Valid;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;

/**
*
* @author otto
*/
@Path("/peticiones")
public class PeticionResource {
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @RolesAllowed(Tokens.DEFAULT_USER_ROLE)
    public Response crearPeticion(@Valid Peticion peticion, @Context SecurityContext sc, @Context UriInfo uriInfo) {
       long idPeticion = new PeticionBO().crearPeticion(peticion, sc.getUserPrincipal().getName());
       URI uri = uriInfo.getAbsolutePathBuilder().path("{id}").build(idPeticion);   
       return Response.created(uri).build();
    }
   
    @Path("{id}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Peticion getPeticion(@PathParam("id") long id) {
        PeticionBO peticionBO = new PeticionBO();
        Peticion peticion = peticionBO.getPeticion(id);
        if (peticion!=null) {
            peticion.setActualizaciones(null);
            peticion.setFirmas(null);
            peticion.setDestinatarios(null);
            //peticion.setCreador(null);
            return peticion;
        }
        else
            throw new CustomNotFoundException("La petición con el id '" + id +"' no existe");
    }
   
    @Path("{id}/firmas")
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response firmarPeticion(@PathParam("id") long idPeticion, FirmaTO firmaTO, @Context SecurityContext sc, @Context UriInfo uriInfo) {
        String autentificado = null;
        if (sc.getUserPrincipal()!=null)
            autentificado = sc.getUserPrincipal().getName();
        PeticionBO peticionBO = new PeticionBO();
        long idFirma = peticionBO.firmarPeticion(idPeticion, firmaTO, autentificado);
        URI uri = uriInfo.getAbsolutePathBuilder().path("{idFirma}").build(idFirma);   
        return Response.created(uri).build();
    }
   
    @Path("{idPeticion}/firmas/{idFirma}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Firma obtenerFirma(@PathParam("idPeticion") long idPeticion, @PathParam("idFirma") long idFirma) {
        return new PeticionBO().getFirma(idFirma);
    }
}
TOP

Related Classes of es.ua.dccia.rest.PeticionResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.