2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
24 package org.onap.dmaap.dbcapi.resources;
28 import io.swagger.annotations.Api;
29 import io.swagger.annotations.ApiOperation;
30 import io.swagger.annotations.ApiResponse;
31 import io.swagger.annotations.ApiResponses;
33 import javax.ws.rs.Consumes;
34 import javax.ws.rs.GET;
35 import javax.ws.rs.POST;
36 import javax.ws.rs.PUT;
37 import javax.ws.rs.Path;
38 import javax.ws.rs.Produces;
39 import javax.ws.rs.core.Context;
40 import javax.ws.rs.core.MediaType;
41 import javax.ws.rs.core.Response;
42 import javax.ws.rs.core.UriInfo;
44 import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
45 import org.onap.dmaap.dbcapi.model.ApiError;
46 import org.onap.dmaap.dbcapi.model.Dmaap;
47 import org.onap.dmaap.dbcapi.service.ApiService;
48 import org.onap.dmaap.dbcapi.service.DmaapService;
53 @Api( value= "dmaap", description = "Endpoint for this instance of DMaaP object containing values for this OpenDCAE deployment" )
54 @Consumes(MediaType.APPLICATION_JSON)
55 @Produces(MediaType.APPLICATION_JSON)
57 public class DmaapResource extends BaseLoggingClass {
60 DmaapService dmaapService = new DmaapService();
63 @ApiOperation( value = "return dmaap details", notes = "returns the `dmaap` object, which contains system wide configuration settings", response = Dmaap.class)
64 @ApiResponses( value = {
65 @ApiResponse( code = 200, message = "Success", response = Dmaap.class),
66 @ApiResponse( code = 400, message = "Error", response = ApiError.class )
69 public Response getDmaap(@Context UriInfo uriInfo) {
70 ApiService check = new ApiService();
72 Dmaap d = dmaapService.getDmaap();
73 return check.success(d);
77 @ApiOperation( value = "return dmaap details", notes = "Create a new DMaaP set system wide configuration settings for the *dcaeEnvironment*. Deprecated with introduction of persistence in 1610.", response = Dmaap.class)
78 @ApiResponses( value = {
79 @ApiResponse( code = 200, message = "Success", response = Dmaap.class),
80 @ApiResponse( code = 400, message = "Error", response = ApiError.class )
82 public Response addDmaap( Dmaap obj ) {
83 ApiService check = new ApiService();
85 try { //check for required fields
86 check.required( "dmaapName", obj.getDmaapName(), "^\\S+$" ); //no white space allowed in dmaapName
87 check.required( "dmaapProvUrl", obj.getDrProvUrl(), "" );
88 check.required( "topicNsRoot", obj.getTopicNsRoot(), "" );
89 check.required( "bridgeAdminTopic", obj.getBridgeAdminTopic(), "" );
90 } catch( RequiredFieldException rfe ) {
94 Dmaap d = dmaapService.addDmaap(obj);
96 return check.notFound();
100 return check.success(d);
104 @ApiOperation( value = "return dmaap details", notes = "Update system settings for *dcaeEnvironment*.", response = Dmaap.class)
105 @ApiResponses( value = {
106 @ApiResponse( code = 200, message = "Success", response = Dmaap.class),
107 @ApiResponse( code = 400, message = "Error", response = ApiError.class )
109 public Response updateDmaap( Dmaap obj ) {
110 ApiService check = new ApiService();
112 try { //check for required fields
113 check.required( "dmaapName", obj.getDmaapName(), "^\\S+$" ); //no white space allowed in dmaapName
114 check.required( "dmaapProvUrl", obj.getDrProvUrl(), "" );
115 check.required( "topicNsRoot", obj.getTopicNsRoot(), "" );
116 check.required( "bridgeAdminTopic", obj.getBridgeAdminTopic(), "" );
117 } catch( RequiredFieldException rfe ) {
118 return check.error();
120 Dmaap d = dmaapService.updateDmaap(obj);
122 return check.success(d);
124 return check.notFound();