diff --git a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/Manufacturer.java b/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/Manufacturer.java deleted file mode 100644 index 30097056b3b1af81466870274e39824b35ad073f..0000000000000000000000000000000000000000 --- a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/Manufacturer.java +++ /dev/null @@ -1,31 +0,0 @@ -package cz.muni.fi.pa165.core.manufacturer; - -import cz.muni.fi.pa165.core.common.DomainObject; -import cz.muni.fi.pa165.core.device.Device; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -@Getter -@Setter -@Entity -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Table(name = "domain_manufacturer") -public class Manufacturer extends DomainObject { - - @Column(unique = true, nullable = false) - private String name; - - @OneToMany(mappedBy = "manufacturer") - private List<Device> deviceList; -} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerController.java b/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerController.java deleted file mode 100644 index 257e6b9078456bf1a0f846c352bbd8d5b18c04aa..0000000000000000000000000000000000000000 --- a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerController.java +++ /dev/null @@ -1,123 +0,0 @@ -package cz.muni.fi.pa165.core.manufacturer; - -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerCreateDto; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerDto; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerUpdateDto; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.validation.Valid; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -/** - * Controller for managing manufacturers. - */ -@RestController -@RequestMapping("/api/manufacturer") -@Tag(name = "manufacturer", description = "Manufacturer API") -public class ManufacturerController { - private final ManufacturerFacade manufacturerFacade; - - @Autowired - public ManufacturerController( - ManufacturerFacade manufacturerFacade - ) { - this.manufacturerFacade = manufacturerFacade; - } - - @Operation( - summary = "Get all manufacturers (paginated)", - description = "Returns a pageable list of all manufacturers.", - tags= {"manufacturer"}) - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Successfully retrieved list of manufacturers"), - @ApiResponse(responseCode = "400", description = "Invalid pagination parameters"), - @ApiResponse(responseCode = "404", description = "No manufacturers found") - }) - @GetMapping("pageable") - public List<ManufacturerDto> findAllPageable(Pageable pageable) { - return manufacturerFacade.findAllPageable(pageable); - } - - @Operation( - summary = "Get all manufacturers", - description = "Returns a list of all manufacturers.", - tags= {"manufacturer"}) - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Successfully retrieved list of manufacturers"), - @ApiResponse(responseCode = "404", description = "No manufacturers found") - }) - @CrossOrigin(origins = "*") - @GetMapping // CORS headers needed for JavaScript clients - public List<ManufacturerDto> findAll() { - return manufacturerFacade.findAll(); - } - - @Operation( - summary = "Get manufacturer by ID", - description = "Returns the manufacturer with the specified ID.", - tags= {"manufacturer"}) - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Successfully retrieved manufacturer"), - @ApiResponse(responseCode = "404", description = "Manufacturer not found") - }) - @GetMapping("/{id}") - public ManufacturerDto findById( - @PathVariable @Parameter(description = "The ID of the manufacturer.") String id) { - return manufacturerFacade.findById(id); - } - - @Operation( - summary = "Create manufacturer", - description = "Creates a new manufacturer.", - tags= {"manufacturer"}) - @ApiResponses(value = { - @ApiResponse(responseCode = "201", description = "Manufacturer created successfully"), - @ApiResponse(responseCode = "400", description = "Invalid manufacturer data supplied") - }) - @PostMapping - public ManufacturerDto create(@RequestBody @Valid ManufacturerCreateDto manufacturerDto) { - return manufacturerFacade.create(manufacturerDto); - } - @Operation( - summary = "Update manufacturer by ID", - description = "Updates the manufacturer with the specified ID.") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "The manufacturer was updated."), - @ApiResponse(responseCode = "404", description = "The manufacturer with the specified ID was not found."), - @ApiResponse(responseCode = "400", description = "The request was malformed.") - }) - @PutMapping("/{id}") - public ManufacturerDto updateById(@PathVariable @Parameter(description = "The id of the manufacturer.") String id, - @RequestBody @Valid ManufacturerUpdateDto manufacturerUpdateDto) { - return manufacturerFacade.updateById(manufacturerUpdateDto, id); - } - @Operation( - summary = "Delete manufacturer", - description = "Deletes the manufacturer with the specified ID.", - tags = {"manufacturer"}) - @ApiResponses(value = { - @ApiResponse(responseCode = "204", description = "Manufacturer deleted successfully"), - @ApiResponse(responseCode = "404", description = "Manufacturer not found"), - @ApiResponse(responseCode = "500", description = "Internal server error") - }) - @DeleteMapping("/{id}") - public ManufacturerDto deleteById( - @PathVariable @Parameter(description = "The id of the manufacturer.") String id) { - return manufacturerFacade.deleteById(id); - } -} \ No newline at end of file diff --git a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerFacade.java b/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerFacade.java deleted file mode 100644 index bbf439a62eb99eb15f264461a9d1a4de5b98fa21..0000000000000000000000000000000000000000 --- a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerFacade.java +++ /dev/null @@ -1,23 +0,0 @@ -package cz.muni.fi.pa165.core.manufacturer; - -import cz.muni.fi.pa165.core.common.DomainFacade; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerCreateDto; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerDto; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerUpdateDto; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class ManufacturerFacade extends DomainFacade<Manufacturer, - ManufacturerDto, - ManufacturerCreateDto, - ManufacturerUpdateDto> { - - private ManufacturerService manufacturerService; // For the "ManufacturerService" specific methods - @Autowired - public ManufacturerFacade(ManufacturerService manufacturerService, - ManufacturerMapper manufacturerMapper) { - super(manufacturerService, manufacturerMapper); - this.manufacturerService = manufacturerService; - } -} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerMapper.java b/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerMapper.java deleted file mode 100644 index 019720bb2c9496f2dc42b834a318a231b1bed4bf..0000000000000000000000000000000000000000 --- a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package cz.muni.fi.pa165.core.manufacturer; - -import cz.muni.fi.pa165.core.common.DomainMapper; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerCreateDto; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerDto; -import cz.muni.fi.pa165.model.dto.manufacturer.ManufacturerUpdateDto; -import org.mapstruct.Mapper; - -@Mapper -public interface ManufacturerMapper extends DomainMapper< - Manufacturer, - ManufacturerDto, - ManufacturerCreateDto, - ManufacturerUpdateDto - > {} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerRepository.java b/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerRepository.java deleted file mode 100644 index b599e4c98d71867e6e3a688c1f412f8ee3f10a99..0000000000000000000000000000000000000000 --- a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package cz.muni.fi.pa165.core.manufacturer; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface ManufacturerRepository extends JpaRepository<Manufacturer, String> { -} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerService.java b/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerService.java deleted file mode 100644 index f6b2d74e38356b8a429cc76afe4539794220d3ea..0000000000000000000000000000000000000000 --- a/core/src/main/java/cz/muni/fi/pa165/core/manufacturer/ManufacturerService.java +++ /dev/null @@ -1,18 +0,0 @@ -package cz.muni.fi.pa165.core.manufacturer; - -import cz.muni.fi.pa165.core.common.DomainService; -import lombok.Getter; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@Service -public class ManufacturerService extends DomainService<Manufacturer> { - @Getter - private final ManufacturerRepository repository; - - @Autowired - public ManufacturerService(ManufacturerRepository manufacturerRepository) { - repository = manufacturerRepository; - } - -} diff --git a/core/src/test/java/cz/muni/fi/pa165/core/manufacturer/UnitTestManufacturerJPA.java b/core/src/test/java/cz/muni/fi/pa165/core/manufacturer/UnitTestManufacturerJPA.java deleted file mode 100644 index bec00b99af94dda933f75f5c5bc497f7941f429f..0000000000000000000000000000000000000000 --- a/core/src/test/java/cz/muni/fi/pa165/core/manufacturer/UnitTestManufacturerJPA.java +++ /dev/null @@ -1,149 +0,0 @@ -package cz.muni.fi.pa165.core.manufacturer; - -import cz.muni.fi.pa165.core.device.Device; -import cz.muni.fi.pa165.core.device.DeviceRepository; -import cz.muni.fi.pa165.core.house.HouseRepository; -import cz.muni.fi.pa165.core.smartmeter.SmartMeterRepository; -import cz.muni.fi.pa165.core.user.UserRepository; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; -import org.springframework.test.context.junit4.SpringRunner; - -import java.util.List; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; - -import static org.assertj.core.api.Assertions.assertThat; - -@RunWith(SpringRunner.class) -@DataJpaTest -public class UnitTestManufacturerJPA { - @Autowired - private TestEntityManager entityManager; - @Autowired - private HouseRepository houseRepository; - @Autowired - private SmartMeterRepository smartMeterRepository; - @Autowired - private UserRepository userRepository; - - @Autowired - private ManufacturerRepository manufacturerRepository; - - @Autowired - private DeviceRepository deviceRepository; - - @Test - public void createTesting() throws Exception { - String manufacturer = this.entityManager.persistAndGetId(new Manufacturer()).toString(); - // Regular expression to match UUID format - Pattern uuidPattern = Pattern.compile( - "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - Pattern.CASE_INSENSITIVE); - // Check if the string matches the UUID format - boolean isUUID = uuidPattern.matcher(manufacturer).matches(); - assertThat(isUUID).isTrue(); - } - - @Test - public void shouldFindNoneIfRepositoryIsEmpty() { - Iterable<Manufacturer> manufacturers = manufacturerRepository.findAll(); - assertThat(manufacturers).isEmpty(); - } - - private Manufacturer helperRegister() { - Iterable<Device> deviceIterable; - deviceIterable = deviceRepository.saveAll(List.of(new Device(), new Device(), new Device())); - List<Device> list = StreamSupport.stream(deviceIterable.spliterator(), false) - .collect(Collectors.toList()); - return manufacturerRepository.save(new Manufacturer("Manufacturer1", list)); - } - - @Test - public void shouldStore() { - Manufacturer manufacturer = helperRegister(); - - assertThat(manufacturer).hasFieldOrPropertyWithValue("name", "Manufacturer1"); - } - - @Test - public void shouldFindAll() { - Manufacturer m = new Manufacturer(); - entityManager.persist(m); - - Manufacturer m1 = new Manufacturer(); - entityManager.persist(m1); - - Manufacturer m2 = new Manufacturer(); - entityManager.persist(m2); - - assertThat(manufacturerRepository.findAll()).hasSize(3).contains(m, m1, m2); - } - - @Test - public void shouldFindById() { - Manufacturer m = new Manufacturer(); - entityManager.persist(m); - - Manufacturer m1 = new Manufacturer(); - entityManager.persist(m1); - - Manufacturer m2 = new Manufacturer(); - entityManager.persist(m2); - - Manufacturer found = manufacturerRepository.findById(m.getId()).get(); - - assertThat(found).isEqualTo(m); - - found = manufacturerRepository.findById(m.getId()).get(); - - assertThat(found).isEqualTo(m); - } - - @Test - public void shouldUpdateById() { - Manufacturer m = new Manufacturer(); - entityManager.persist(m); - - Manufacturer m1 = new Manufacturer(); - entityManager.persist(m1); - - Manufacturer update = manufacturerRepository.findById(m.getId()).get(); - update.setName("New name"); - manufacturerRepository.save(update); - - Manufacturer check = manufacturerRepository.findById(m.getId()).get(); - - assertThat(check.getId()).isEqualTo(m.getId()); - assertThat(check.getName()).isEqualTo(m.getName()); - } - - @Test - public void shouldDeleteById() { - Manufacturer m = new Manufacturer(); - entityManager.persist(m); - - Manufacturer m1 = new Manufacturer(); - entityManager.persist(m1); - - manufacturerRepository.deleteById(m.getId()); - - assertThat(manufacturerRepository.findAll()).hasSize(1).contains(m1); - assertThat(manufacturerRepository.findAll()).hasSize(1).doesNotContain(m); - } - - @Test - public void shouldDeleteAll() { - entityManager.persist(helperRegister()); - entityManager.persist(helperRegister()); - - manufacturerRepository.deleteAll(); - - assertThat(manufacturerRepository.findAll()).isEmpty(); - } -} - diff --git a/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerCreateDto.java b/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerCreateDto.java deleted file mode 100644 index ce6bfc339808ff0a948df3b00e541c6f73e32187..0000000000000000000000000000000000000000 --- a/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerCreateDto.java +++ /dev/null @@ -1,11 +0,0 @@ -package cz.muni.fi.pa165.model.dto.manufacturer; - -import cz.muni.fi.pa165.model.dto.common.DomainObjectDto; -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class ManufacturerCreateDto extends DomainObjectDto { - private String name; -} diff --git a/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerDto.java b/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerDto.java deleted file mode 100644 index cadb73c17dff29ff3c80eab6e748fe242f4bbb91..0000000000000000000000000000000000000000 --- a/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerDto.java +++ /dev/null @@ -1,12 +0,0 @@ -package cz.muni.fi.pa165.model.dto.manufacturer; - -import cz.muni.fi.pa165.model.dto.common.DomainObjectDto; -import lombok.Getter; -import lombok.Setter; - - -@Getter -@Setter -public class ManufacturerDto extends DomainObjectDto { - private String name; -} diff --git a/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerUpdateDto.java b/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerUpdateDto.java deleted file mode 100644 index 5951e5051226815644832ee7d6e91586b9df8212..0000000000000000000000000000000000000000 --- a/model/src/main/java/cz/muni/fi/pa165/model/dto/manufacturer/ManufacturerUpdateDto.java +++ /dev/null @@ -1,12 +0,0 @@ -package cz.muni.fi.pa165.model.dto.manufacturer; - -import cz.muni.fi.pa165.model.dto.common.DomainObjectDto; -import lombok.Getter; -import lombok.Setter; - - -@Getter -@Setter -public class ManufacturerUpdateDto extends DomainObjectDto { - private String name; -}