| package com.doumee.config.swagger; | 
|   | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.http.HttpStatus; | 
| import org.springframework.http.ResponseEntity; | 
| import org.springframework.web.bind.annotation.GetMapping; | 
| import org.springframework.web.bind.annotation.RestController; | 
| import reactor.core.publisher.Mono; | 
| import springfox.documentation.swagger.web.*; | 
|   | 
| import java.util.Optional; | 
|   | 
| @RestController | 
| public class SwaggerHandler { | 
|   | 
|     @Autowired(required = false) | 
|     private SecurityConfiguration securityConfiguration; | 
|   | 
|     @Autowired(required = false) | 
|     private UiConfiguration uiConfiguration; | 
|   | 
|     private final SwaggerResourcesProvider swaggerResources; | 
|   | 
|     @Autowired | 
|     public SwaggerHandler(SwaggerResourcesProvider swaggerResources) { | 
|         this.swaggerResources = swaggerResources; | 
|     } | 
|   | 
|   | 
|     @GetMapping("/swagger-resources/configuration/security") | 
|     public Mono<ResponseEntity<SecurityConfiguration>> securityConfiguration() { | 
|         return Mono.just(new ResponseEntity<>( | 
|                 Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK)); | 
|     } | 
|   | 
|     @GetMapping("/swagger-resources/configuration/ui") | 
|     public Mono<ResponseEntity<UiConfiguration>> uiConfiguration() { | 
|         return Mono.just(new ResponseEntity<>( | 
|                 Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK)); | 
|     } | 
|   | 
|     @GetMapping("/swagger-resources") | 
|     public Mono<ResponseEntity> swaggerResources() { | 
|         return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK))); | 
|     } | 
| } |