package edu.gjoko.schedlr.controllers.rest; import edu.gjoko.schedlr.dto.ServiceDto; import edu.gjoko.schedlr.entity.Service; import edu.gjoko.schedlr.mappers.ServiceDtoMapper; import edu.gjoko.schedlr.services.ServicesService; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Objects; @RestController @RequestMapping("api/service") @AllArgsConstructor public class ServiceApi { private ServicesService service; private ServiceDtoMapper serviceDtoMapper; @PostMapping(path="/delete") public void saveBusiness(@RequestBody List serviceList) { if(!CollectionUtils.isEmpty(serviceList)) { List serviceIds = serviceList.stream() .map(Service::getId) .filter(Objects::nonNull) .toList(); service.deleteByIds(serviceIds); } } @PatchMapping public void updateServices (@RequestBody List serviceList, HttpServletRequest request) { Long ownerId = (long) request.getSession(true).getAttribute("stakeholderId"); service.saveOrUpdateServices(serviceList, ownerId); } @GetMapping public List searchServicesByKeyWord(@RequestParam(value = "searchKeyword", required = false) String searchKeyWord) { return service.getServicesByKeyword(searchKeyWord) .stream() .map(serviceDtoMapper::serviceToServiceDto) .toList(); } }