diff --git a/src/main/kotlin/com/example/demo/http/controllers/ProductController.kt b/src/main/kotlin/com/example/demo/http/controllers/ProductController.kt index a950282..8c21872 100644 --- a/src/main/kotlin/com/example/demo/http/controllers/ProductController.kt +++ b/src/main/kotlin/com/example/demo/http/controllers/ProductController.kt @@ -9,7 +9,7 @@ import com.example.demo.http.responses.page.PageResponse import com.example.demo.models.Product import com.example.demo.services.database.exceptions.AlreadyDeletedException import com.example.demo.services.database.product.ProductService -import com.example.demo.services.database.product.exceptions.ProductNotFoundException +import com.example.demo.services.database.exceptions.ProductNotFoundException import com.example.demo.services.kafka.exceptions.InvalidArgumentException import io.swagger.v3.oas.annotations.media.Content import io.swagger.v3.oas.annotations.media.Schema @@ -107,4 +107,4 @@ class ProductController( return ResponseEntity(makeOkResponse(), HttpStatus.OK) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/example/demo/services/database/city/CityService.kt b/src/main/kotlin/com/example/demo/services/database/city/CityService.kt index 2cd3d6c..8266e19 100644 --- a/src/main/kotlin/com/example/demo/services/database/city/CityService.kt +++ b/src/main/kotlin/com/example/demo/services/database/city/CityService.kt @@ -1,7 +1,7 @@ package com.example.demo.services.database.city import com.example.demo.models.City -import com.example.demo.services.database.city.exceptions.CityNotFoundException +import com.example.demo.services.database.exceptions.CityNotFoundException import com.example.demo.services.database.exceptions.AlreadyDeletedException import com.example.demo.services.kafka.dto.CityCreateDto import org.springframework.stereotype.Service @@ -11,9 +11,9 @@ import java.util.* interface CityService { fun findByGuid(guid: UUID): City? - fun create(name: String): City? - fun create(kafkaCityDto: CityCreateDto): City? + fun create(name: String): City + fun create(kafkaCityDto: CityCreateDto): City @Throws(CityNotFoundException::class, AlreadyDeletedException::class) - fun delete(guid: UUID): City? -} \ No newline at end of file + fun delete(guid: UUID): City +} diff --git a/src/main/kotlin/com/example/demo/services/database/city/CityServiceImpl.kt b/src/main/kotlin/com/example/demo/services/database/city/CityServiceImpl.kt index 96e8183..dcbb0bb 100644 --- a/src/main/kotlin/com/example/demo/services/database/city/CityServiceImpl.kt +++ b/src/main/kotlin/com/example/demo/services/database/city/CityServiceImpl.kt @@ -2,7 +2,7 @@ package com.example.demo.services.database.city import com.example.demo.models.City import com.example.demo.providers.CityRepository -import com.example.demo.services.database.city.exceptions.CityNotFoundException +import com.example.demo.services.database.exceptions.CityNotFoundException import com.example.demo.services.database.exceptions.AlreadyDeletedException import com.example.demo.services.kafka.dto.CityCreateDto import java.time.OffsetDateTime @@ -14,7 +14,7 @@ class CityServiceImpl( ): CityService { override fun findByGuid(guid: UUID): City? = cityRepository.findByGuid(guid) - override fun create(name: String): City? { + override fun create(name: String): City { val city = City( id = null, guid = UUID.randomUUID(), @@ -27,7 +27,7 @@ class CityServiceImpl( return cityRepository.save(city) } - override fun create(kafkaCityDto: CityCreateDto): City? { + override fun create(kafkaCityDto: CityCreateDto): City { val updatedAt = kafkaCityDto.updatedAt val deletedAt = kafkaCityDto.deletedAt @@ -43,7 +43,7 @@ class CityServiceImpl( return cityRepository.save(city) } - override fun delete(guid: UUID): City? { + override fun delete(guid: UUID): City { val city = findByGuid(guid) ?: throw CityNotFoundException() if (city.isDeleted()) { @@ -56,4 +56,4 @@ class CityServiceImpl( return cityRepository.save(deletedCity) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/example/demo/services/database/city/exceptions/CityNotFoundException.kt b/src/main/kotlin/com/example/demo/services/database/city/exceptions/CityNotFoundException.kt deleted file mode 100644 index dfaa560..0000000 --- a/src/main/kotlin/com/example/demo/services/database/city/exceptions/CityNotFoundException.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.example.demo.services.database.city.exceptions - -class CityNotFoundException: RuntimeException() diff --git a/src/main/kotlin/com/example/demo/services/database/exceptions/CityNotFoundException.kt b/src/main/kotlin/com/example/demo/services/database/exceptions/CityNotFoundException.kt new file mode 100644 index 0000000..a8f3283 --- /dev/null +++ b/src/main/kotlin/com/example/demo/services/database/exceptions/CityNotFoundException.kt @@ -0,0 +1,3 @@ +package com.example.demo.services.database.exceptions + +class CityNotFoundException: ModelNotFoundException("city") diff --git a/src/main/kotlin/com/example/demo/services/database/exceptions/ModelNotFoundException.kt b/src/main/kotlin/com/example/demo/services/database/exceptions/ModelNotFoundException.kt new file mode 100644 index 0000000..d357ee7 --- /dev/null +++ b/src/main/kotlin/com/example/demo/services/database/exceptions/ModelNotFoundException.kt @@ -0,0 +1,3 @@ +package com.example.demo.services.database.exceptions + +open class ModelNotFoundException(entityName: String): RuntimeException("$entityName not found") diff --git a/src/main/kotlin/com/example/demo/services/database/exceptions/ProductNotFoundException.kt b/src/main/kotlin/com/example/demo/services/database/exceptions/ProductNotFoundException.kt new file mode 100644 index 0000000..da0328c --- /dev/null +++ b/src/main/kotlin/com/example/demo/services/database/exceptions/ProductNotFoundException.kt @@ -0,0 +1,3 @@ +package com.example.demo.services.database.exceptions + +class ProductNotFoundException: ModelNotFoundException("product") diff --git a/src/main/kotlin/com/example/demo/services/database/product/ProductService.kt b/src/main/kotlin/com/example/demo/services/database/product/ProductService.kt index cfade78..dfd0e3c 100644 --- a/src/main/kotlin/com/example/demo/services/database/product/ProductService.kt +++ b/src/main/kotlin/com/example/demo/services/database/product/ProductService.kt @@ -2,7 +2,7 @@ package com.example.demo.services.database.product import com.example.demo.models.Product import com.example.demo.services.database.exceptions.AlreadyDeletedException -import com.example.demo.services.database.product.exceptions.ProductNotFoundException +import com.example.demo.services.database.exceptions.ProductNotFoundException import com.example.demo.services.kafka.exceptions.InvalidArgumentException import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable @@ -18,8 +18,8 @@ interface ProductService { fun create(name: String, price: Long, description: String?): Product @Throws(ProductNotFoundException::class, AlreadyDeletedException::class) - fun delete(guid: UUID): Product? + fun delete(guid: UUID): Product @Throws(ProductNotFoundException::class, InvalidArgumentException::class) fun syncToKafka(guid: UUID, topic: String?) -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/example/demo/services/database/product/ProductServiceImpl.kt b/src/main/kotlin/com/example/demo/services/database/product/ProductServiceImpl.kt index 0d49377..0ec3aad 100644 --- a/src/main/kotlin/com/example/demo/services/database/product/ProductServiceImpl.kt +++ b/src/main/kotlin/com/example/demo/services/database/product/ProductServiceImpl.kt @@ -3,7 +3,7 @@ package com.example.demo.services.database.product import com.example.demo.models.Product import com.example.demo.providers.ProductRepository import com.example.demo.services.database.exceptions.AlreadyDeletedException -import com.example.demo.services.database.product.exceptions.ProductNotFoundException +import com.example.demo.services.database.exceptions.ProductNotFoundException import com.example.demo.services.kafka.Producer import com.example.demo.utils.LoggerDelegate import net.logstash.logback.marker.Markers @@ -44,7 +44,7 @@ class ProductServiceImpl( return productRepository.save(product) } - override fun delete(guid: UUID): Product? { + override fun delete(guid: UUID): Product { val product = findByGuid(guid) ?: throw ProductNotFoundException() if (product.isDeleted()) { @@ -64,4 +64,4 @@ class ProductServiceImpl( producer.produceProductInfo(topic ?: defaultSyncTopic, product) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/example/demo/services/database/product/exceptions/ProductNotFoundException.kt b/src/main/kotlin/com/example/demo/services/database/product/exceptions/ProductNotFoundException.kt deleted file mode 100644 index 32f85b0..0000000 --- a/src/main/kotlin/com/example/demo/services/database/product/exceptions/ProductNotFoundException.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.example.demo.services.database.product.exceptions - -class ProductNotFoundException: RuntimeException() diff --git a/src/test/kotlin/com/example/demo/services/database/city/CityServiceImplDbTest.kt b/src/test/kotlin/com/example/demo/services/database/city/CityServiceImplDbTest.kt index 3bf5307..783a2e3 100644 --- a/src/test/kotlin/com/example/demo/services/database/city/CityServiceImplDbTest.kt +++ b/src/test/kotlin/com/example/demo/services/database/city/CityServiceImplDbTest.kt @@ -3,7 +3,7 @@ package com.example.demo.services.database.city import com.example.demo.BaseDbTest import com.example.demo.models.City import com.example.demo.providers.CityRepository -import com.example.demo.services.database.city.exceptions.CityNotFoundException +import com.example.demo.services.database.exceptions.CityNotFoundException import com.example.demo.services.database.exceptions.AlreadyDeletedException import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.annotation.Autowired @@ -55,4 +55,4 @@ class CityServiceImplDbTest: BaseDbTest() { } } -} \ No newline at end of file +} diff --git a/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplDbTest.kt b/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplDbTest.kt index eec14af..3b920a0 100644 --- a/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplDbTest.kt +++ b/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplDbTest.kt @@ -4,7 +4,7 @@ import com.example.demo.BaseDbTest import com.example.demo.models.Product import com.example.demo.providers.ProductRepository import com.example.demo.services.database.exceptions.AlreadyDeletedException -import com.example.demo.services.database.product.exceptions.ProductNotFoundException +import com.example.demo.services.database.exceptions.ProductNotFoundException import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.annotation.Autowired import org.springframework.test.context.ContextConfiguration @@ -66,4 +66,4 @@ class ProductServiceImplDbTest: BaseDbTest() { } } } -} \ No newline at end of file +} diff --git a/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplTest.kt b/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplTest.kt index 8bf56f2..a923084 100644 --- a/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplTest.kt +++ b/src/test/kotlin/com/example/demo/services/database/product/ProductServiceImplTest.kt @@ -3,7 +3,7 @@ package com.example.demo.services.database.product import com.example.demo.BaseUnitTest import com.example.demo.models.Product import com.example.demo.providers.ProductRepository -import com.example.demo.services.database.product.exceptions.ProductNotFoundException +import com.example.demo.services.database.exceptions.ProductNotFoundException import com.example.demo.services.kafka.Producer import com.example.demo.services.kafka.exceptions.InvalidArgumentException import org.junit.jupiter.api.assertThrows @@ -96,4 +96,4 @@ class ProductServiceImplTest: BaseUnitTest() { productService.syncToKafka(guid, specificTopic) } } -} \ No newline at end of file +}