package com.griddynamics.jagger.jaas.rest; import com.griddynamics.jagger.jaas.service.DynamicReportingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.async.WebAsyncTask; import java.io.IOException; import static com.griddynamics.jagger.jaas.service.DynamicDataService.DEFAULT_DB_CONFIG_ID; /** * JaaS REST API controller based on Spring MVC which generates Jagger test execution reports * using DB which is configured at deployment time * in contrast to {@link DynamicReportingRestController} * which is capable to generate reports for DB described at runtime. */ @RequestMapping(value = "/report") @RestController @ConditionalOnProperty(name = "jaas.hide.db.access.via.api", havingValue = "true") public class ReportingRestController { private final DynamicReportingRestController dynamicReportingRestController; @Autowired public ReportingRestController(DynamicReportingService dynamicReportingService) { this.dynamicReportingRestController = new DynamicReportingRestController(dynamicReportingService); } @GetMapping(value = "") public WebAsyncTask<ResponseEntity<Resource>> getReport( @RequestParam(name = "sessionId") String sessionId, @RequestParam(name = "baseLineSessionId", required = false) String baseLineSessionId ) throws IOException { return dynamicReportingRestController.getReport(DEFAULT_DB_CONFIG_ID, sessionId, baseLineSessionId); } }