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))); 
 | 
    } 
 | 
} 
 |