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