import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
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.QueryParam;
-import javax.ws.rs.core.Context;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
-
-import org.apache.log4j.Logger;
-import org.onap.dmaap.dbcapi.authentication.AuthenticationErrorException;
import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
-import org.onap.dmaap.dbcapi.logging.DmaapbcLogMessageEnum;
import org.onap.dmaap.dbcapi.model.ApiError;
import org.onap.dmaap.dbcapi.model.DR_Pub;
-import org.onap.dmaap.dbcapi.model.DR_Sub;
import org.onap.dmaap.dbcapi.model.Feed;
-import org.onap.dmaap.dbcapi.model.Topic;
import org.onap.dmaap.dbcapi.model.DmaapObject.DmaapObject_Status;
import org.onap.dmaap.dbcapi.service.ApiService;
import org.onap.dmaap.dbcapi.service.FeedService;
@Produces(MediaType.APPLICATION_JSON)
@Authorization
public class FeedResource extends BaseLoggingClass {
-
+
+ private ResponseBuilder responseBuilder = new ResponseBuilder();
+ private RequiredChecker checker = new RequiredChecker();
+
@GET
@ApiOperation( value = "return Feed details",
notes = "Returns array of `Feed` objects.",
response = Feed.class)
@ApiResponses( value = {
- @ApiResponse( code = 200, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 200, message = "Success", response = Feed.class),
@ApiResponse( code = 400, message = "Error", response = ApiError.class )
})
public Response getFeeds(
@QueryParam("feedName") String feedName,
@QueryParam("version") String version,
- @QueryParam("match") String match
- ) {
-
- ApiService resp = new ApiService();
+ @QueryParam("match") String match) {
FeedService feedService = new FeedService();
List<Feed> nfeeds = feedService.getAllFeeds( feedName, version, match );
GenericEntity<List<Feed>> list = new GenericEntity<List<Feed>>(nfeeds) {
};
- return resp.success(list);
+ return responseBuilder.success(list);
}
notes = "Create a of `Feed` object.",
response = Feed.class)
@ApiResponses( value = {
- @ApiResponse( code = 200, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 200, message = "Success", response = Feed.class),
@ApiResponse( code = 400, message = "Error", response = ApiError.class )
})
public Response addFeed(
- @WebParam(name = "feed") Feed feed
- ) {
+ @WebParam(name = "feed") Feed feed,
+ @QueryParam("useExisting") String useExisting) {
ApiService resp = new ApiService();
try {
- resp.required( "feedName", feed.getFeedName(), "");
- resp.required( "feedVersion", feed.getFeedVersion(), "");
- resp.required( "owner", feed.getOwner(), "" );
- resp.required( "asprClassification", feed.getAsprClassification(), "" );
+ checker.required( "feedName", feed.getFeedName());
+ checker.required( "feedVersion", feed.getFeedVersion());
+ checker.required( "owner", feed.getOwner());
+ checker.required( "asprClassification", feed.getAsprClassification());
} catch ( RequiredFieldException rfe ) {
- logger.debug( resp.toString() );
- return resp.error();
+ logger.debug( rfe.getApiError().toString() );
+ return responseBuilder.error(rfe.getApiError());
}
+
FeedService feedService = new FeedService();
Feed nfeed = feedService.getFeedByName( feed.getFeedName(), feed.getFeedVersion(), resp.getErr() );
if ( nfeed == null ) {
nfeed = feedService.addFeed( feed, resp.getErr() );
if ( nfeed != null ) {
- return resp.success(nfeed);
+ return responseBuilder.success(nfeed);
} else {
logger.error( "Unable to create: " + feed.getFeedName() + ":" + feed.getFeedVersion());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
} else if ( nfeed.getStatus() == DmaapObject_Status.DELETED ) {
feed.setFeedId( nfeed.getFeedId());
nfeed = feedService.updateFeed(feed, resp.getErr());
if ( nfeed != null ) {
- return resp.success(nfeed);
+ return responseBuilder.success(nfeed);
} else {
logger.info( "Unable to update: " + feed.getFeedName() + ":" + feed.getFeedVersion());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
+ } else if ( (useExisting != null) && ("true".compareToIgnoreCase( useExisting ) == 0)) {
+ return responseBuilder.success(nfeed);
}
resp.setCode(Status.CONFLICT.getStatusCode());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
@PUT
notes = "Update a `Feed` object, specified by id.",
response = Feed.class)
@ApiResponses( value = {
- @ApiResponse( code = 200, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 200, message = "Success", response = Feed.class),
@ApiResponse( code = 400, message = "Error", response = ApiError.class )
})
@Path("/{id}")
public Response updateFeed(
@PathParam("id") String id,
- @WebParam(name = "feed") Feed feed
- ) {
+ @WebParam(name = "feed") Feed feed) {
FeedService feedService = new FeedService();
ApiService resp = new ApiService();
try {
- resp.required( "feedId", id, "");
+ checker.required( "feedId", id);
} catch ( RequiredFieldException rfe ) {
- logger.debug( resp.toString() );
- return resp.error();
+ logger.debug( rfe.getApiError().toString() );
+ return responseBuilder.error(rfe.getApiError());
}
Feed nfeed = feedService.getFeed( id, resp.getErr() );
if ( nfeed == null || nfeed.getStatus() == DmaapObject_Status.DELETED ) {
- return resp.notFound();
+ return responseBuilder.notFound();
}
// we assume there is no updates allowed for pubs and subs objects via this api...
nfeed = feedService.updateFeed(nfeed, resp.getErr());
if ( nfeed != null ) {
- return resp.success(nfeed);
+ return responseBuilder.success(nfeed);
} else {
logger.info( "Unable to update: " + feed.getFeedName() + ":" + feed.getFeedVersion());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
}
notes = "Delete a `Feed` object, specified by id.",
response = Feed.class)
@ApiResponses( value = {
- @ApiResponse( code = 204, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 204, message = "Success", response = Feed.class),
@ApiResponse( code = 400, message = "Error", response = ApiError.class )
})
@Path("/{id}")
Feed nfeed = feedService.getFeed( id, resp.getErr() );
if ( nfeed == null ) {
resp.setCode(Status.NOT_FOUND.getStatusCode());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
nfeed = feedService.removeFeed( nfeed, resp.getErr() );
if ( nfeed == null || nfeed.getStatus() == DmaapObject_Status.DELETED ) {
- return resp.success(Status.NO_CONTENT.getStatusCode(), null);
+ return responseBuilder.success(Status.NO_CONTENT.getStatusCode(), null);
}
logger.info( "Unable to delete: " + id + ":" + nfeed.getFeedVersion());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
@GET
Feed nfeed = feedService.getFeed( id, resp.getErr() );
if ( nfeed == null ) {
resp.setCode(Status.NOT_FOUND.getStatusCode());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
- return resp.success(nfeed);
+ return responseBuilder.success(nfeed);
}
}