Skip to content

Commit

Permalink
This should fix the errors with the current impl I tried
Browse files Browse the repository at this point in the history
  • Loading branch information
NovaFox161 committed Oct 6, 2023
1 parent a90b1da commit aa48f65
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ class DefaultCredentialService(
val encryptedRefreshToken = Credential.aes.encrypt(credential.refreshToken).awaitSingle()
val encryptedAccessToken = Credential.aes.encrypt(credential.accessToken).awaitSingle()

val saved = credentialsRepository.save(CredentialData(
val savedData = credentialsRepository.save(CredentialData(
credentialNumber = credential.credentialNumber,
accessToken = encryptedAccessToken,
refreshToken = encryptedRefreshToken,
expiresAt = credential.expiresAt.toEpochMilli(),
)).map(::Credential).awaitSingle()
)).awaitSingle()
val saved = Credential(savedData)


credentialsCache.put(key = saved.credentialNumber, value = saved)
return saved
Expand All @@ -34,11 +36,10 @@ class DefaultCredentialService(
var credential = credentialsCache.get(key = number)
if (credential != null) return credential

credential = credentialsRepository.findByCredentialNumber(number)
.map(::Credential)
.awaitSingle()
val data = credentialsRepository.findByCredentialNumber(number).awaitSingle()
credential = Credential(data)

if (credential != null) credentialsCache.put(key = number, value = credential)
credentialsCache.put(key = number, value = credential)
return credential
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,23 @@ import org.dreamexposure.discal.core.database.CredentialData
import org.dreamexposure.discal.core.extensions.asInstantMilli
import java.time.Instant

data class Credential(

@Suppress("DataClassPrivateConstructor")
data class Credential private constructor(
val credentialNumber: Int,
var expiresAt: Instant,
var refreshToken: String,
var accessToken: String,
) {
lateinit var refreshToken: String
lateinit var accessToken: String

constructor(data: CredentialData) : this(
credentialNumber = data.credentialNumber,
expiresAt = data.expiresAt.asInstantMilli(),
) {
suspend {
refreshToken = aes.decrypt(data.refreshToken).awaitSingle()
accessToken = aes.decrypt(data.accessToken).awaitSingle()
}
}

companion object {
val aes = AESEncryption(Config.SECRET_GOOGLE_CREDENTIAL_KEY.getString())

suspend operator fun invoke(data: CredentialData) = Credential(
credentialNumber = data.credentialNumber,
expiresAt = data.expiresAt.asInstantMilli(),
refreshToken = aes.decrypt(data.refreshToken).awaitSingle(),
accessToken = aes.decrypt(data.accessToken).awaitSingle(),
)
}
}

0 comments on commit aa48f65

Please sign in to comment.