Skip to content

Commit

Permalink
Merge pull request #140 from IZIVIA/fix/#138-add-partner-id-on-get-cr…
Browse files Browse the repository at this point in the history
…edentials-roles
  • Loading branch information
lilgallon authored Oct 31, 2024
2 parents 29e9bd2 + ccdef49 commit 6050bab
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ package com.izivia.ocpi.toolkit.modules.credentials.repositories
import com.izivia.ocpi.toolkit.modules.credentials.domain.CredentialRole

interface CredentialsRoleRepository {
suspend fun getCredentialsRoles(): List<CredentialRole>
suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole>
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ open class CredentialsClientService(
credentials = Credentials(
token = serverToken,
url = clientVersionsEndpointUrl,
roles = clientCredentialsRoleRepository.getCredentialsRoles(),
roles = clientCredentialsRoleRepository.getCredentialsRoles(partnerId),
),
debugHeaders = emptyMap(),
).let {
Expand Down Expand Up @@ -148,7 +148,7 @@ open class CredentialsClientService(
credentials = Credentials(
token = credentialsServerToken,
url = clientVersionsEndpointUrl,
roles = clientCredentialsRoleRepository.getCredentialsRoles(),
roles = clientCredentialsRoleRepository.getCredentialsRoles(partnerId),
),
debugHeaders = emptyMap(),
).let {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ open class CredentialsServerService(
): OcpiResponseBody<Credentials> = OcpiResponseBody.of {
getCredentials(
serverToken = token,
partnerId = partnerRepository.getPartnerIdByCredentialsServerToken(token)
?: partnerRepository.getPartnerIdByCredentialsTokenA(credentialsTokenA = token)
?: throw OcpiClientInvalidParametersException(
"Invalid token ($token) - should be either a TokenA or a ServerToken",
),
)
}

Expand Down Expand Up @@ -61,16 +66,17 @@ open class CredentialsServerService(
debugHeaders = debugHeaders,
)

// Remove token A because it is useless from now on
partnerRepository.invalidateCredentialsTokenA(partnerId = partnerId)

// Return Credentials objet to sender with the token C inside (which is for us the server token)
getCredentials(
serverToken = partnerRepository.saveCredentialsServerToken(
partnerId = partnerId,
credentialsServerToken = generateUUIDv4Token(),
),
).also {
// Remove token A because it is useless from now on
partnerRepository.invalidateCredentialsTokenA(partnerId = partnerId)
}
partnerId = partnerId,
)
}

override suspend fun put(
Expand Down Expand Up @@ -109,6 +115,7 @@ open class CredentialsServerService(
partnerId = partnerId,
credentialsServerToken = generateUUIDv4Token(),
),
partnerId = partnerId,
)
}

Expand Down Expand Up @@ -218,9 +225,9 @@ open class CredentialsServerService(
partnerRepository.saveEndpoints(partnerId = partnerId, endpoints = versionDetail.endpoints)
}

private suspend fun getCredentials(serverToken: String): Credentials = Credentials(
private suspend fun getCredentials(serverToken: String, partnerId: String): Credentials = Credentials(
token = serverToken,
url = serverVersionsUrlProvider(),
roles = credentialsRoleRepository.getCredentialsRoles(),
roles = credentialsRoleRepository.getCredentialsRoles(partnerId),
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ fun main() {
service = CredentialsServerService(
partnerRepository = receiverPlatformRepository,
credentialsRoleRepository = object : CredentialsRoleRepository {
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
CredentialRole(
role = Role.EMSP,
businessDetails = BusinessDetails(name = "Receiver", website = null, logo = null),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ fun main() {
clientPartnerRepository = senderPlatformRepository,
clientVersionsRepository = senderVersionsRepository,
clientCredentialsRoleRepository = object : CredentialsRoleRepository {
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
CredentialRole(
role = Role.CPO,
businessDetails = BusinessDetails(name = "Sender", website = null, logo = null),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class CredentialsIntegrationTests : BaseServerIntegrationTest() {
service = CredentialsServerService(
partnerRepository = receiverPlatformRepo,
credentialsRoleRepository = object : CredentialsRoleRepository {
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
CredentialRole(
role = Role.EMSP,
businessDetails = BusinessDetails(name = "Receiver", website = null, logo = null),
Expand Down Expand Up @@ -135,7 +135,7 @@ class CredentialsIntegrationTests : BaseServerIntegrationTest() {
clientPartnerRepository = PartnerMongoRepository(collection = senderServerSetupResult.partnerCollection),
clientVersionsRepository = VersionsCacheRepository(baseUrl = senderServerSetupResult.transport.baseUrl),
clientCredentialsRoleRepository = object : CredentialsRoleRepository {
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
CredentialRole(
role = Role.CPO,
businessDetails = BusinessDetails(name = "Sender", website = null, logo = null),
Expand Down

0 comments on commit 6050bab

Please sign in to comment.