Changes for OpenJDK 11
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / resources / FeedResource.java
index 382d88c..28bdb00 100644 (file)
@@ -27,7 +27,6 @@ import io.swagger.annotations.ApiResponses;
 
 import java.util.List;
 
-import javax.jws.WebParam;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
@@ -46,7 +45,6 @@ import org.onap.dmaap.dbcapi.model.ApiError;
 import org.onap.dmaap.dbcapi.model.DR_Pub;
 import org.onap.dmaap.dbcapi.model.Feed;
 import org.onap.dmaap.dbcapi.model.DmaapObject.DmaapObject_Status;
-import org.onap.dmaap.dbcapi.service.ApiService;
 import org.onap.dmaap.dbcapi.service.FeedService;
 
 
@@ -58,6 +56,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", 
@@ -90,49 +89,49 @@ public class FeedResource extends BaseLoggingClass {
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
        public Response addFeed( 
-                       @WebParam(name = "feed") Feed feed,
+                       Feed feed,
                        @QueryParam("useExisting") String useExisting) {
 
-               ApiService resp = new ApiService();
+               ApiError apiError = new ApiError();
 
                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());
                }
                
                
                FeedService feedService = new FeedService();
-               Feed nfeed =  feedService.getFeedByName( feed.getFeedName(), feed.getFeedVersion(), resp.getErr() );
+               Feed nfeed =  feedService.getFeedByName( feed.getFeedName(), feed.getFeedVersion(), apiError);
                if ( nfeed == null ) {
-                       nfeed =  feedService.addFeed( feed, resp.getErr() );
+                       nfeed =  feedService.addFeed(feed, apiError);
                        if ( nfeed != null ) {
                                return responseBuilder.success(nfeed);
                        } else {
                                logger.error( "Unable to create: " + feed.getFeedName() + ":" + feed.getFeedVersion());
 
-                               return responseBuilder.error(resp.getErr());
+                               return responseBuilder.error(apiError);
                        }
                } else if ( nfeed.getStatus() == DmaapObject_Status.DELETED ) {
                        feed.setFeedId( nfeed.getFeedId());
-                       nfeed =  feedService.updateFeed(feed, resp.getErr());
+                       nfeed =  feedService.updateFeed(feed, apiError);
                        if ( nfeed != null ) {
                                return responseBuilder.success(nfeed);
                        } else {
                                logger.info( "Unable to update: " + feed.getFeedName() + ":" + feed.getFeedVersion());
 
-                               return responseBuilder.error(resp.getErr());
+                               return responseBuilder.error(apiError);
                        }
                } else if ( (useExisting != null) && ("true".compareToIgnoreCase( useExisting ) == 0)) {
                        return responseBuilder.success(nfeed);
                }
 
-               resp.setCode(Status.CONFLICT.getStatusCode());
-               return responseBuilder.error(resp.getErr());
+               apiError.setCode(Status.CONFLICT.getStatusCode());
+               return responseBuilder.error(apiError);
        }
        
        @PUT
@@ -146,19 +145,19 @@ public class FeedResource extends BaseLoggingClass {
        @Path("/{id}")
        public Response updateFeed( 
                        @PathParam("id") String id,
-                       @WebParam(name = "feed") Feed feed) {
+                       Feed feed) {
 
                FeedService feedService = new FeedService();
-               ApiService resp = new ApiService();
+               ApiError apiError = new ApiError();
 
                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() );
+               Feed nfeed = feedService.getFeed(id, apiError);
                if ( nfeed == null || nfeed.getStatus() == DmaapObject_Status.DELETED ) {
                        return responseBuilder.notFound();
                }
@@ -169,13 +168,13 @@ public class FeedResource extends BaseLoggingClass {
                nfeed.setFeedDescription(feed.getFeedDescription());
                nfeed.setFormatUuid(feed.getFormatUuid());
                
-               nfeed =  feedService.updateFeed(nfeed, resp.getErr());
+               nfeed =  feedService.updateFeed(nfeed, apiError);
                if ( nfeed != null ) {
                        return responseBuilder.success(nfeed);
                } else {
                        logger.info( "Unable to update: " + feed.getFeedName() + ":" + feed.getFeedVersion());
 
-                       return responseBuilder.error(resp.getErr());
+                       return responseBuilder.error(apiError);
                }
        }
        
@@ -188,25 +187,23 @@ public class FeedResource extends BaseLoggingClass {
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
        @Path("/{id}")
-       public Response deleteFeed( 
-                       @PathParam("id") String id
-                       ){
-               ApiService resp = new ApiService();
+       public Response deleteFeed(@PathParam("id") String id){
+               ApiError apiError = new ApiError();
 
                logger.debug( "Entry: DELETE  " + id);
                FeedService feedService = new FeedService();
-               Feed nfeed =  feedService.getFeed( id, resp.getErr() );
+               Feed nfeed =  feedService.getFeed(id, apiError);
                if ( nfeed == null ) {
-                       resp.setCode(Status.NOT_FOUND.getStatusCode());
-                       return responseBuilder.error(resp.getErr());
+                       apiError.setCode(Status.NOT_FOUND.getStatusCode());
+                       return responseBuilder.error(apiError);
                }
-               nfeed = feedService.removeFeed( nfeed, resp.getErr() );
+               nfeed = feedService.removeFeed(nfeed, apiError);
                if ( nfeed == null || nfeed.getStatus() == DmaapObject_Status.DELETED ) {
                        return responseBuilder.success(Status.NO_CONTENT.getStatusCode(), null);
                }
                logger.info( "Unable to delete: " + id + ":" + nfeed.getFeedVersion());
 
-               return responseBuilder.error(resp.getErr());
+               return responseBuilder.error(apiError);
        }
 
        @GET
@@ -218,17 +215,45 @@ public class FeedResource extends BaseLoggingClass {
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
        @Path("/{id}")
-       public Response getFeed( 
-                       @PathParam("id") String id
-                       ) {
-               ApiService resp = new ApiService();
+       public Response getFeed(@PathParam("id") String id) {
+               ApiError apiError = new ApiError();
 
                FeedService feedService = new FeedService();
-               Feed nfeed =  feedService.getFeed( id, resp.getErr() );
+               Feed nfeed =  feedService.getFeed(id, apiError);
                if ( nfeed == null ) {
-                       resp.setCode(Status.NOT_FOUND.getStatusCode());
-                       return responseBuilder.error(resp.getErr());
+                       apiError.setCode(Status.NOT_FOUND.getStatusCode());
+                       return responseBuilder.error(apiError);
                }
                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) {
+               ApiError error = new ApiError();
+               
+               FeedService feedService = new FeedService();
+               boolean hard = false;
+               if (  hardParam != null && hardParam.equalsIgnoreCase("true")) {
+                       hard = true;
+               }
+               feedService.sync( hard, error );
+               if ( error.is2xx()) {
+                       List<Feed> nfeeds =  feedService.getAllFeeds();
+                       GenericEntity<List<Feed>> list = new GenericEntity<List<Feed>>(nfeeds) {
+                       };
+                       return responseBuilder.success(list);
+               }
+               return responseBuilder.error(error);
+       }
+       
 }