view src/main/java/de/intevation/lada/rest/LKommentarService.java @ 60:bfc34abd2252

Changed function to list proben. If no parameter is given return all available kommentare (was return empty list). If proben parameter is provided return only the kommentare which belogs to the probe with the given probe id.
author Torsten Irländer <torsten.irlaender@intevation.de>
date Tue, 28 May 2013 11:48:22 +0200
parents f2c4d8a5f0d6
children d2434d55daa3
line wrap: on
line source
package de.intevation.lada.rest;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
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.MultivaluedMap;
import javax.ws.rs.core.UriInfo;

import de.intevation.lada.data.LKommentarPRepository;
import de.intevation.lada.model.LKommentarP;

/**
 * This class produces a RESTful service to read the contents of LKommentarP table.
 * 
 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
 */
@Path("/kommentare")
@RequestScoped
public class LKommentarService
{
    /**
     * The Repository.
     */
    @Inject @Named("lkommentarRepository")
    private LKommentarPRepository repository;

    /**
     * The logger for this class
     */
    @Inject
    private Logger logger;

    /**
     * Request a single SKommentarP via its id.
     *
     * @param id The mst_id
     * @return JSON Object via REST service.
     */
    @GET
    @Path("/{id}")
    @Produces("text/json")
    public LKommentarP findById(@PathParam("id") String id) {
        return repository.findById(LKommentarP.class, id);
    }

    /**
     * Request a list of LKommentarP objects filtered by LProbe id.
     *
     * @param info The query parameters
     * @return JSON object via REST service.
     */
    @GET
    @Produces("text/json")
    public List<LKommentarP> filter(@Context UriInfo info) {
        MultivaluedMap<String, String> params = info.getQueryParameters();
        if (params.containsKey("probe")) {
            String probe = params.getFirst("probe");
            return repository.filter(probe);
        }
        else {
            return repository.findAll(LKommentarP.class);
        }
    }

    @POST
    @Path("/create")
    @Consumes("application/json")
    public String create(LKommentarP kommentar) {
        String response = repository.create(kommentar);
        if (response.isEmpty()) {
            return "[{success: true}]";
        }
        else {
            return "[{success: false," +
                " error: " + response + "}]";
        }
    }
}
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)