Skip to content

Commit

Permalink
fix linting
Browse files Browse the repository at this point in the history
  • Loading branch information
mobiletoly committed Dec 11, 2023
1 parent 52fce88 commit d56db40
Show file tree
Hide file tree
Showing 43 changed files with 271 additions and 245 deletions.
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
root = true
[*]
max_line_length = 110
[*.{kt,kts}]
ktlint_code_style = ktlint_official
ktlint_standard_no-empty-first-line-in-class-body=disabled
ktlint_standard_string-template-indent=disabled
ktlint_standard_multiline-expression-wrapping=disabled
ktlint_standard_indent=disabled
ktlint_standard_string-template=disabled
ktlint_standard_function-signature=disabled
ktlint_standard_import-ordering=disabled
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ you can import it into Postman if you want to manually call app's REST APIs.

To generate a coverage report in HTML format you must run:

$ ./gradlew build koverMergedHtmlReport
$ ./gradlew build koverHtmlReport

It will run unit tests and generate coverage report in HTML format into project's directory:
`./app/adapters/persist/build/reports/kover/merged/html/index.html`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import core.outport.GetDeploymentEnvPort

internal class AppOsEnvironment :
GetDeploymentEnvPort {

override val deploymentEnv: String by lazy {
System.getenv(appDeploymentEnvKey)
?: throw IllegalStateException("<$appDeploymentEnvKey> environment variable is missing")
Expand Down
24 changes: 24 additions & 0 deletions app/adapters/env/src/main/kotlin/adapters/env/EnvModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package adapters.env

import core.outport.GetDatabaseConfigPort
import core.outport.GetDeploymentConfigPort
import core.outport.GetDeploymentEnvPort
import core.outport.GetRandomPersonServiceConfigPort
import org.koin.dsl.binds
import org.koin.dsl.module

val envModule =
module {
single<GetDeploymentEnvPort> {
AppOsEnvironment()
}

single {
HoconBasedAppConfig(get<GetDeploymentEnvPort>().deploymentEnv)
} binds
arrayOf(
GetDeploymentConfigPort::class,
GetDatabaseConfigPort::class,
GetRandomPersonServiceConfigPort::class,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@ internal class HoconBasedAppConfig(deploymentEnv: String) :
GetDeploymentConfigPort,
GetDatabaseConfigPort,
GetRandomPersonServiceConfigPort {

private val config: Config

init {
val envConfig = ConfigFactory.load("config-$deploymentEnv.conf")
val commonConf = ConfigFactory.load("config-common.conf")
val rootConfig = ConfigFactory
.load()
.withFallback(envConfig)
.withFallback(commonConf)
.resolve()
val rootConfig =
ConfigFactory
.load()
.withFallback(envConfig)
.withFallback(commonConf)
.resolve()
this.config = rootConfig.getConfig("app-config")
}

Expand All @@ -48,13 +48,14 @@ internal class HoconBasedAppConfig(deploymentEnv: String) :
val node = config.getConfig("random-person-service")
RandomPersonServiceConfig(
fetchUrl = node.getString("fetch-url"),
apiKey = node.getString("api-key")
apiKey = node.getString("api-key"),
)
}

private fun Config.toProperties() = Properties().also {
for (e in this.entrySet()) {
it.setProperty(e.key, this.getString(e.key))
private fun Config.toProperties() =
Properties().also {
for (e in this.entrySet()) {
it.setProperty(e.key, this.getString(e.key))
}
}
}
}
22 changes: 0 additions & 22 deletions app/adapters/env/src/main/kotlin/adapters/env/_EnvModule.kt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ import com.github.michaelbull.logging.InlineLogger
import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import core.outport.BootPersistStoragePort
import core.outport.PersistTransactionPort
import core.outport.MustBeCalledInTransactionContext
import core.outport.PersistTransactionPort
import core.outport.ShutdownPersistStoragePort
import java.util.Properties
import kotlinx.coroutines.Dispatchers
import org.jetbrains.exposed.exceptions.ExposedSQLException
import org.jetbrains.exposed.sql.Database
Expand All @@ -18,7 +19,6 @@ import org.jetbrains.exposed.sql.transactions.TransactionManager
import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction
import org.jetbrains.exposed.sql.transactions.experimental.withSuspendTransaction
import org.jetbrains.exposed.sql.transactions.transactionManager
import java.util.Properties

internal class DatabaseConnector(
private val databaseConfig: Properties,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package adapters.persist

import adapters.persist.addressbook.LoadPersonAdapter
import adapters.persist.addressbook.SavePersonAdapter
import adapters.persist.addressbook.repo.PersonRepo
import adapters.persist.addressbook.repo.PostalAddressRepo
import adapters.persist.util.DatabaseErrorInspector
import adapters.persist.util.postgresql.PgErrorInspector
import core.outport.AddPersonPort
import core.outport.BootPersistStoragePort
import core.outport.DeletePersonPort
import core.outport.GetDatabaseConfigPort
import core.outport.LoadAllPersonsPort
import core.outport.LoadPersonPort
import core.outport.PersistTransactionPort
import core.outport.ShutdownPersistStoragePort
import core.outport.UpdatePersonPort
import org.koin.dsl.binds
import org.koin.dsl.module

val persistenceModule =
module {
single<DatabaseErrorInspector> {
PgErrorInspector()
}

single {
DatabaseConnector(
databaseConfig = get<GetDatabaseConfigPort>().database,
errorInspector = get(),
)
} binds arrayOf(
BootPersistStoragePort::class,
ShutdownPersistStoragePort::class,
PersistTransactionPort::class,
)

single {
PersonRepo()
}
single {
PostalAddressRepo()
}

single {
LoadPersonAdapter(
personRepo = get(),
postalAddressRepo = get(),
)
} binds arrayOf(
LoadPersonPort::class,
LoadAllPersonsPort::class,
)
single {
SavePersonAdapter(
personRepository = get(),
postalAddressRepo = get(),
)
} binds arrayOf(
AddPersonPort::class,
UpdatePersonPort::class,
DeletePersonPort::class,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ internal fun ExposedSQLException.throwAsDomainException(inspector: DatabaseError
DatabaseErrorState.DUPLICATE_KEY_VALUE_VIOLATES_UNIQUE_CONSTRAINT ->
throw ResourceAlreadyExistsException(
title = "Resource already exists",
detail = this.message ?: this.toString()
detail = this.message ?: this.toString(),
)
else ->
throw this
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import core.models.PersonEntry

internal fun PersonEntry.Companion.fromEntity(
personSqlEntity: PersonSqlEntity,
postalAddressSqlEntity: PostalAddressSqlEntity?
postalAddressSqlEntity: PostalAddressSqlEntity?,
) = with(personSqlEntity) {
PersonEntry(
id = id,
Expand All @@ -17,7 +17,7 @@ internal fun PersonEntry.Companion.fromEntity(
age = age,
phoneNumber = phoneNumber,
email = email,
postalAddress = postalAddressSqlEntity?.toEntity()
postalAddress = postalAddressSqlEntity?.toEntity(),
)
}

Expand All @@ -26,7 +26,7 @@ private fun PostalAddressSqlEntity.toEntity() = PersonEntry.PostalAddress(
address2 = address2,
city = city,
state = state,
country = country
country = country,
)

private fun GenderSqlType.toEntity(): PersonEntry.Gender = when (this) {
Expand All @@ -42,7 +42,7 @@ internal fun PersonEntry.toPersonSqlEntity() = with(this) {
gender = gender?.toSqlEntity(),
age = age,
phoneNumber = phoneNumber,
email = email
email = email,
)
}

Expand All @@ -57,7 +57,7 @@ internal fun PersonEntry.PostalAddress.toPostalAddressSqlEntity(
address2 = address2,
city = city,
state = state,
country = country
country = country,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ internal class LoadPersonAdapter(
val postalAddressSqlEntity = postalAddressRepo.getByPersonIdOrNull(id)
return PersonEntry.fromEntity(
personSqlEntity = personSqlEntity,
postalAddressSqlEntity = postalAddressSqlEntity
postalAddressSqlEntity = postalAddressSqlEntity,
)
}

Expand All @@ -44,7 +44,7 @@ internal class LoadPersonAdapter(
val postalAddressSqlEntity = postalAddressSqlEntitiesMap[personSqlEntity.id!!]
PersonEntry.fromEntity(
personSqlEntity = personSqlEntity,
postalAddressSqlEntity = postalAddressSqlEntity
postalAddressSqlEntity = postalAddressSqlEntity,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ internal class SavePersonAdapter(
?.id
return upsertPersonEntry(
personEntry = entry,
postalAddressId = postalAddressId
postalAddressId = postalAddressId,
)
}

Expand All @@ -50,20 +50,18 @@ internal class SavePersonAdapter(
personEntry: PersonEntry,
postalAddressId: Long?,
): PersonEntry {
val addressBookItemSqlEntity = personRepository.upsert(
personEntry.toPersonSqlEntity()
)
val addressBookItemSqlEntity = personRepository.upsert(personEntry.toPersonSqlEntity())
val postalAddressSqlEntity = personEntry.postalAddress
?.toPostalAddressSqlEntity(
personId = addressBookItemSqlEntity.id!!,
postalAddressId = postalAddressId
postalAddressId = postalAddressId,
)
?.let {
postalAddressRepo.upsert(it)
}
return PersonEntry.fromEntity(
personSqlEntity = addressBookItemSqlEntity,
postalAddressSqlEntity = postalAddressSqlEntity
postalAddressSqlEntity = postalAddressSqlEntity,
)
}

Expand Down
Loading

0 comments on commit d56db40

Please sign in to comment.