@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.",
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);
}
})
public Response addFeed(
@WebParam(name = "feed") Feed feed,
- @QueryParam("useExisting") String useExisting
- ) {
+ @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());
}
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 resp.success(nfeed);
+ return responseBuilder.success(nfeed);
}
resp.setCode(Status.CONFLICT.getStatusCode());
- return resp.error();
+ return responseBuilder.error(resp.getErr());
}
@PUT
@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());
}
}
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);
}
+
+ @PUT
+ @ApiOperation( value = "sync feeds to existing DR",
+ notes = "When Bus Controller is deployed after DR, then it is possible"
+ + "that DR has previous provisioning data that needs to be imported"
+ + "into Bus Controller.",
+ response = Feed.class )
+ @ApiResponses( value = {
+ @ApiResponse( code = 200, message = "Success", response = Feed.class),
+ @ApiResponse( code = 400, message = "Error", response = ApiError.class )
+ })
+ @Path( "/sync")
+ public Response syncFeeds (
+ @QueryParam("hard") String hardParam
+ ) {
+ ApiService resp = new ApiService();
+
+ FeedService feedService = new FeedService();
+ boolean hard = false;
+ if ( hardParam != null && hardParam.equalsIgnoreCase("true")) {
+ hard = true;
+ }
+ feedService.sync( hard, resp.getErr() );
+ if ( resp.getErr().is2xx()) {
+ List<Feed> nfeeds = feedService.getAllFeeds();
+ GenericEntity<List<Feed>> list = new GenericEntity<List<Feed>>(nfeeds) {
+ };
+ return responseBuilder.success(list);
+ }
+ return responseBuilder.error(resp.getErr());
+ }
+
}