f9dbf6d1e8caf535486743c150b4cc3ba0dfa77e
[ccsdk/cds.git] /
1 /*
2  *  Copyright © 2017-2018 AT&T Intellectual Property.
3  *  Modifications Copyright © 2018 IBM.
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  */
17
18 package org.onap.ccsdk.apps.controllerblueprints;
19
20 import java.util.Collections;
21 import java.util.HashMap;
22 import java.util.List;
23 import java.util.Map;
24
25 import org.jetbrains.annotations.NotNull;
26 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants;
27 import org.springframework.beans.factory.annotation.Value;
28 import org.springframework.context.annotation.Bean;
29 import org.springframework.http.HttpStatus;
30 import org.springframework.web.bind.annotation.RequestMethod;
31
32 import com.google.common.collect.Lists;
33
34 import springfox.documentation.builders.PathSelectors;
35 import springfox.documentation.builders.RequestHandlerSelectors;
36 import springfox.documentation.builders.ResponseMessageBuilder;
37 import springfox.documentation.schema.ModelRef;
38 import springfox.documentation.service.ApiInfo;
39 import springfox.documentation.service.Contact;
40 import springfox.documentation.service.Header;
41 import springfox.documentation.service.ResponseMessage;
42 import springfox.documentation.spi.DocumentationType;
43 import springfox.documentation.spring.web.plugins.Docket;
44
45 /**
46  * SwaggerConfig
47  *
48  * @author Brinda Santh 8/13/2018
49  */
50 @Deprecated
51 //@Configuration
52 //@EnableSwagger2
53 @SuppressWarnings("unused")
54 public class SwaggerConfig {
55     @Value("${appVersion}")
56     private String appVersion;
57     @Value("${swagger.contact.name}")
58     private String contactName;
59     @Value("${swagger.contact.url}")
60     private String contactUrl;
61     @Value("${swagger.contact.email}")
62     private String contactEmail;
63     private String stringModelRef = "string";
64
65     @Bean
66     @SuppressWarnings("unused")
67     public Docket api() {
68         return new Docket(DocumentationType.SWAGGER_2)
69                 .globalResponseMessage(RequestMethod.GET, getDefaultGetResponseMessages())
70                 .globalResponseMessage(RequestMethod.POST, getDefaultPostResponseMessages())
71                 .globalResponseMessage(RequestMethod.PUT, getDefaultPutResponseMessages())
72                 .globalResponseMessage(RequestMethod.DELETE, getDefaultDeleteResponseMessages())
73                 .select()
74                 .apis(RequestHandlerSelectors.any())
75                 .paths(PathSelectors.any())
76                 .build()
77                 .apiInfo(apiInfo());
78     }
79
80     private ApiInfo apiInfo() {
81         return new ApiInfo(
82                 "Controller Blueprints API",
83                 "Controller blueprints API for VNF Self Service.",
84                 appVersion,
85                 "Terms of service",
86                 new Contact(contactName, contactUrl, contactEmail),
87                 "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", Collections.emptyList());
88     }
89
90     private List<ResponseMessage> getDefaultGetResponseMessages() {
91         List<ResponseMessage> defaultResponseMessages = Lists.newArrayList();
92         Map<String, Header> defaultHeaders = getDefaultResponseHeaders();
93         defaultResponseMessages.add(getResponseBuilder(HttpStatus.OK, defaultHeaders));
94         defaultResponseMessages.add(getResponseBuilder(HttpStatus.BAD_REQUEST, defaultHeaders));
95         defaultResponseMessages.add(getResponseBuilder(HttpStatus.UNAUTHORIZED, defaultHeaders));
96         defaultResponseMessages.add(getResponseBuilder(HttpStatus.FORBIDDEN, defaultHeaders));
97         defaultResponseMessages.add(getResponseBuilder(HttpStatus.NOT_FOUND, defaultHeaders));
98         defaultResponseMessages.add(getResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR, defaultHeaders));
99         return defaultResponseMessages;
100     }
101
102     private List<ResponseMessage> getDefaultPostResponseMessages() {
103         List<ResponseMessage> defaultResponseMessages = Lists.newArrayList();
104         Map<String, Header> defaultHeaders = getDefaultResponseHeaders();
105         defaultResponseMessages.add(getResponseBuilder(HttpStatus.OK, defaultHeaders));
106         defaultResponseMessages.add(getResponseBuilder(HttpStatus.CREATED, defaultHeaders));
107         defaultResponseMessages.add(getResponseBuilder(HttpStatus.BAD_REQUEST, defaultHeaders));
108         defaultResponseMessages.add(getResponseBuilder(HttpStatus.UNAUTHORIZED, defaultHeaders));
109         defaultResponseMessages.add(getResponseBuilder(HttpStatus.FORBIDDEN, defaultHeaders));
110         defaultResponseMessages.add(getResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR, defaultHeaders));
111         return defaultResponseMessages;
112     }
113
114     private List<ResponseMessage> getDefaultPutResponseMessages() {
115         List<ResponseMessage> defaultResponseMessages = Lists.newArrayList();
116         Map<String, Header> defaultHeaders = getDefaultResponseHeaders();
117         defaultResponseMessages.add(getResponseBuilder(HttpStatus.OK, defaultHeaders));
118         defaultResponseMessages.add(getResponseBuilder(HttpStatus.BAD_REQUEST, defaultHeaders));
119         defaultResponseMessages.add(getResponseBuilder(HttpStatus.UNAUTHORIZED, defaultHeaders));
120         defaultResponseMessages.add(getResponseBuilder(HttpStatus.FORBIDDEN, defaultHeaders));
121         defaultResponseMessages.add(getResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR, defaultHeaders));
122         return defaultResponseMessages;
123     }
124
125     private List<ResponseMessage> getDefaultDeleteResponseMessages() {
126         List<ResponseMessage> defaultResponseMessages = Lists.newArrayList();
127         Map<String, Header> defaultHeaders = getDefaultResponseHeaders();
128         defaultResponseMessages.add(getResponseBuilder(HttpStatus.OK, defaultHeaders));
129         defaultResponseMessages.add(getResponseBuilder(HttpStatus.BAD_REQUEST, defaultHeaders));
130         defaultResponseMessages.add(getResponseBuilder(HttpStatus.UNAUTHORIZED, defaultHeaders));
131         defaultResponseMessages.add(getResponseBuilder(HttpStatus.FORBIDDEN, defaultHeaders));
132         defaultResponseMessages.add(getResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR, defaultHeaders));
133         return defaultResponseMessages;
134     }
135
136     private ResponseMessage getResponseBuilder(@NotNull HttpStatus httpStatus, Map<String, Header> defaultHeaders) {
137         ResponseMessageBuilder responseMessageBuilder = new ResponseMessageBuilder();
138         responseMessageBuilder.code(httpStatus.value())
139                 .message(httpStatus.getReasonPhrase())
140                 .headersWithDescription(defaultHeaders)
141                 .build();
142         return responseMessageBuilder.build();
143     }
144
145     private Map<String, Header> getDefaultResponseHeaders() {
146         Map<String, Header> defaultHeaders = new HashMap<>();
147         defaultHeaders.put(BluePrintConstants.RESPONSE_HEADER_TRANSACTION_ID,
148                 new Header(BluePrintConstants.RESPONSE_HEADER_TRANSACTION_ID, "Transaction Id", new ModelRef(stringModelRef)));
149         defaultHeaders.put(BluePrintConstants.RESPONSE_HEADER_LATEST_VERSION,
150                 new Header(BluePrintConstants.RESPONSE_HEADER_LATEST_VERSION, "API Latest Version", new ModelRef(stringModelRef)));
151         defaultHeaders.put(BluePrintConstants.RESPONSE_HEADER_MINOR_VERSION,
152                 new Header(BluePrintConstants.RESPONSE_HEADER_MINOR_VERSION, "API Minor Version", new ModelRef(stringModelRef)));
153         defaultHeaders.put(BluePrintConstants.RESPONSE_HEADER_PATCH_VERSION,
154                 new Header(BluePrintConstants.RESPONSE_HEADER_PATCH_VERSION, "API Patch Version", new ModelRef(stringModelRef)));
155         return defaultHeaders;
156     }
157 }