refactor services

This commit is contained in:
Denis Savosin
2024-10-15 13:51:28 +07:00
parent 3b34a2989d
commit 95a3cafbad
2 changed files with 43 additions and 54 deletions

View File

@@ -2,8 +2,8 @@ package com.github.dannecron.demo.services.database.city
import com.github.dannecron.demo.models.City
import com.github.dannecron.demo.providers.CityRepository
import com.github.dannecron.demo.services.database.exceptions.CityNotFoundException
import com.github.dannecron.demo.services.database.exceptions.AlreadyDeletedException
import com.github.dannecron.demo.services.database.exceptions.CityNotFoundException
import com.github.dannecron.demo.services.kafka.dto.CityCreateDto
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
@@ -14,33 +14,30 @@ class CityServiceImpl(
): CityService {
override fun findByGuid(guid: UUID): City? = cityRepository.findByGuid(guid)
override fun create(name: String): City {
val city = City(
override fun create(name: String): City = City(
id = null,
guid = UUID.randomUUID(),
name = name,
createdAt = OffsetDateTime.now(),
updatedAt = null,
deletedAt = null,
)
return cityRepository.save(city)
).let {
cityRepository.save(it)
}
override fun create(kafkaCityDto: CityCreateDto): City {
val updatedAt = kafkaCityDto.updatedAt
val deletedAt = kafkaCityDto.deletedAt
val city = City(
override fun create(kafkaCityDto: CityCreateDto): City = City(
id = null,
guid = UUID.fromString(kafkaCityDto.guid),
name = kafkaCityDto.name,
createdAt = OffsetDateTime.parse(kafkaCityDto.createdAt, DateTimeFormatter.ISO_OFFSET_DATE_TIME),
updatedAt = if (updatedAt != null) OffsetDateTime.parse(updatedAt, DateTimeFormatter.ISO_OFFSET_DATE_TIME) else null,
deletedAt = if (deletedAt != null) OffsetDateTime.parse(deletedAt, DateTimeFormatter.ISO_OFFSET_DATE_TIME) else null,
)
return cityRepository.save(city)
updatedAt = kafkaCityDto.deletedAt?.let {
OffsetDateTime.parse(it, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
},
deletedAt = kafkaCityDto.deletedAt?.let {
OffsetDateTime.parse(it, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
},
).let {
cityRepository.save(it)
}
override fun delete(guid: UUID): City {
@@ -50,10 +47,10 @@ class CityServiceImpl(
throw AlreadyDeletedException()
}
val deletedCity = city.copy(
return cityRepository.save(
city.copy(
deletedAt = OffsetDateTime.now(),
)
return cityRepository.save(deletedCity)
)
}
}

View File

@@ -12,32 +12,24 @@ class CustomerServiceImpl(
private val customerRepository: CustomerRepository,
private val cityRepository: CityRepository
): CustomerService {
override fun findByGuid(guid: UUID): CustomerExtended? {
val customer = customerRepository.findByGuid(guid) ?: return null
if (customer.cityId == null) {
return CustomerExtended(customer, null)
override fun findByGuid(guid: UUID): CustomerExtended? = customerRepository.findByGuid(guid)
?.let {
customer -> CustomerExtended(
customer = customer,
city = customer.cityId?.let { cityId -> cityRepository.findById(cityId).orElse(null) }
)
}
val city = cityRepository.findById(customer.cityId)
return CustomerExtended(customer, city.orElse(null))
}
override fun create(name: String, cityGuid: UUID?): Customer {
val cityId: Long? = cityGuid?.let {
cityRepository.findByGuid(it)?.id ?: throw CityNotFoundException()
}
val customer = Customer(
override fun create(name: String, cityGuid: UUID?): Customer = Customer(
id = null,
guid = UUID.randomUUID(),
name = name,
cityId = cityId,
cityId = cityGuid?.let {
cityRepository.findByGuid(it)?.id ?: throw CityNotFoundException()
},
createdAt = OffsetDateTime.now(),
updatedAt = null,
)
return customerRepository.save(customer)
).let {
customerRepository.save(it)
}
}