Added new feeds/sync API
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / resources / FeedResource.java
index 382d88c..6df135d 100644 (file)
@@ -58,6 +58,7 @@ import org.onap.dmaap.dbcapi.service.FeedService;
 public class FeedResource extends BaseLoggingClass {
 
        private ResponseBuilder responseBuilder = new ResponseBuilder();
+       private RequiredChecker checker = new RequiredChecker();
 
        @GET
        @ApiOperation( value = "return Feed details", 
@@ -96,13 +97,13 @@ public class FeedResource extends BaseLoggingClass {
                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 responseBuilder.error(resp.getErr());
+                       logger.debug( rfe.getApiError().toString() );
+                       return responseBuilder.error(rfe.getApiError());
                }
                
                
@@ -152,10 +153,10 @@ public class FeedResource extends BaseLoggingClass {
                ApiService resp = new ApiService();
 
                try {
-                       resp.required( "feedId", id, "");
+                       checker.required( "feedId", id);
                } catch ( RequiredFieldException rfe ) {
-                       logger.debug( resp.toString() );
-                       return responseBuilder.error(resp.getErr());
+                       logger.debug( rfe.getApiError().toString() );
+                       return responseBuilder.error(rfe.getApiError());
                }
 
                Feed nfeed = feedService.getFeed( id, resp.getErr() );
@@ -231,4 +232,36 @@ public class FeedResource extends BaseLoggingClass {
                }
                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());
+       }
+       
 }