ingo@136: /* ingo@136: * Copyright (c) 2011 by Intevation GmbH ingo@136: * ingo@136: * This program is free software under the LGPL (>=v2.1) ingo@136: * Read the file LGPL.txt coming with the software for details ingo@136: * or visit http://www.gnu.org/licenses/ if it does not exist. ingo@136: */ ingo@136: package de.intevation.artifactdatabase.rest; ingo@136: ingo@136: import de.intevation.artifacts.ArtifactDatabase; ingo@136: import de.intevation.artifacts.ArtifactDatabaseException; ingo@136: ingo@136: import org.apache.log4j.Logger; ingo@136: ingo@136: import org.restlet.data.MediaType; ingo@136: import org.restlet.data.Status; ingo@136: import org.restlet.ext.xml.DomRepresentation; ingo@136: import org.restlet.representation.EmptyRepresentation; ingo@136: import org.restlet.representation.Representation; ingo@136: import org.restlet.resource.ResourceException; ingo@136: import org.restlet.Response; ingo@136: ingo@136: /** ingo@136: * A Rest resource that lists the users provided by the artifact database. ingo@136: * ingo@136: * @author Ingo Weinzierl ingo@136: */ ingo@136: public class ListUsersResource ingo@136: extends BaseResource ingo@136: { ingo@136: /** The logger that is used in this class.*/ ingo@136: private static Logger logger = Logger.getLogger(ListUsersResource.class); ingo@136: ingo@136: /** server URL where to reach the resource.*/ ingo@136: public static final String PATH = "/list-users"; ingo@136: ingo@136: ingo@136: @Override ingo@136: protected Representation innerGet() ingo@136: throws ResourceException ingo@136: { ingo@136: ArtifactDatabase db = getArtifactDatabase(); ingo@136: ingo@136: try { ingo@136: logger.info(PATH); ingo@136: ingo@136: return new DomRepresentation( ingo@136: MediaType.APPLICATION_XML, ingo@136: db.listUsers(getCallMeta())); ingo@136: } ingo@136: catch (ArtifactDatabaseException adbe) { ingo@136: logger.warn(adbe.getLocalizedMessage(), adbe); ingo@136: ingo@136: Response response = getResponse(); ingo@136: response.setStatus( ingo@136: Status.CLIENT_ERROR_NOT_FOUND, adbe.getMessage()); ingo@136: return new EmptyRepresentation(); ingo@136: } ingo@136: } ingo@136: } ingo@136: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :