package com.uaihebert.uaimockserver.servlet; import com.uaihebert.uaimockserver.dto.factory.UaiBasicConfigurationDTOFactory; import com.uaihebert.uaimockserver.dto.factory.UaiRouteDTOFactory; import com.uaihebert.uaimockserver.dto.model.UaiRouteDTO; import com.uaihebert.uaimockserver.dto.response.IndexResponseDTO; import com.uaihebert.uaimockserver.model.BodyValidationType; import com.uaihebert.uaimockserver.model.UaiRoute; import com.uaihebert.uaimockserver.repository.UaiRouteMapper; import com.uaihebert.uaimockserver.repository.UaiRouteRepository; import com.uaihebert.uaimockserver.service.UaiRouteService; import com.uaihebert.uaimockserver.util.JsonUtil; import com.uaihebert.uaimockserver.util.RequestBodyExtractor; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.List; public class UaiRouteServlet extends AbstractServlet { @Override protected void doGet(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse) throws ServletException, IOException { final String selectedProject = httpRequest.getParameter("selectedProject"); super.addDefaultHeaders(httpResponse); final String body = createIndexGetResponse(selectedProject); writeInResponse(httpResponse, body); } private String createIndexGetResponse(final String selectedProject) { final List<UaiRoute> uaiRouteList = UaiRouteRepository.listAllRoutes(selectedProject); final IndexResponseDTO indexResponseDTO = new IndexResponseDTO(); indexResponseDTO.setRouteList(UaiRouteDTOFactory.create(uaiRouteList)); indexResponseDTO.setDefaultProject(UaiRouteMapper.ALL_PROJECT); indexResponseDTO.setProjectList(UaiRouteMapper.extractProjectFromRoutes()); indexResponseDTO.setRootConfiguration(UaiBasicConfigurationDTOFactory.create()); indexResponseDTO.setBodyValidationTypeList(Arrays.asList(BodyValidationType.values())); return JsonUtil.toJson(indexResponseDTO); } @Override protected void doPut(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse) throws ServletException, IOException { final UaiRouteDTO uaiRouteDTO = RequestBodyExtractor.extract(httpRequest, UaiRouteDTO.class); UaiRouteService.editRoute(uaiRouteDTO); send204Response(httpResponse); } @Override protected void doPost(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse) throws ServletException, IOException { final UaiRouteDTO uaiRouteDTO = RequestBodyExtractor.extract(httpRequest, UaiRouteDTO.class); UaiRouteService.createRoute(uaiRouteDTO); send204Response(httpResponse); } @Override protected void doDelete(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse) throws ServletException, IOException { final String routeId = httpRequest.getParameter("routeId"); UaiRouteService.deleteRoute(routeId); send204Response(httpResponse); } }