package io.fathom.cloud.server.resources; import io.fathom.cloud.server.auth.Auth; import io.fathom.cloud.server.auth.AuthProvider; import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response.Status; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fathomdb.Configuration; public abstract class FathomCloudResourceBase { private static final Logger log = LoggerFactory.getLogger(FathomCloudResourceBase.class); public static final String JSON = javax.ws.rs.core.MediaType.APPLICATION_JSON; public static final String XML = javax.ws.rs.core.MediaType.APPLICATION_XML; public static final String TEXT_PLAIN = javax.ws.rs.core.MediaType.TEXT_PLAIN; @Context protected HttpServletRequest httpRequest; @Inject Configuration configuration; @Inject AuthProvider authProvider; protected void warnStub() { log.warn("Stub implementation in " + getClass().getSimpleName()); } private String baseUrl; protected String getBaseUrl() { if (baseUrl == null) { baseUrl = Urls.getRequestUrl(httpRequest); } return baseUrl; } protected Auth getAuth() { Auth auth = authProvider.get(); if (auth == null) { throw new WebApplicationException(Status.UNAUTHORIZED); } return auth; } protected void notFoundIfNull(Object o) { if (o == null) { throw new WebApplicationException(Status.NOT_FOUND); } } }