Skip to content

Commit 6050bab

Browse files
authored
Merge pull request #140 from IZIVIA/fix/#138-add-partner-id-on-get-credentials-roles
2 parents 29e9bd2 + ccdef49 commit 6050bab

File tree

6 files changed

+20
-13
lines changed

6 files changed

+20
-13
lines changed

ocpi-toolkit-2.2.1/src/main/kotlin/com/izivia/ocpi/toolkit/modules/credentials/repositories/CredentialsRoleRepository.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ package com.izivia.ocpi.toolkit.modules.credentials.repositories
33
import com.izivia.ocpi.toolkit.modules.credentials.domain.CredentialRole
44

55
interface CredentialsRoleRepository {
6-
suspend fun getCredentialsRoles(): List<CredentialRole>
6+
suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole>
77
}

ocpi-toolkit-2.2.1/src/main/kotlin/com/izivia/ocpi/toolkit/modules/credentials/services/CredentialsClientService.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ open class CredentialsClientService(
9999
credentials = Credentials(
100100
token = serverToken,
101101
url = clientVersionsEndpointUrl,
102-
roles = clientCredentialsRoleRepository.getCredentialsRoles(),
102+
roles = clientCredentialsRoleRepository.getCredentialsRoles(partnerId),
103103
),
104104
debugHeaders = emptyMap(),
105105
).let {
@@ -148,7 +148,7 @@ open class CredentialsClientService(
148148
credentials = Credentials(
149149
token = credentialsServerToken,
150150
url = clientVersionsEndpointUrl,
151-
roles = clientCredentialsRoleRepository.getCredentialsRoles(),
151+
roles = clientCredentialsRoleRepository.getCredentialsRoles(partnerId),
152152
),
153153
debugHeaders = emptyMap(),
154154
).let {

ocpi-toolkit-2.2.1/src/main/kotlin/com/izivia/ocpi/toolkit/modules/credentials/services/CredentialsServerService.kt

+13-6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ open class CredentialsServerService(
2424
): OcpiResponseBody<Credentials> = OcpiResponseBody.of {
2525
getCredentials(
2626
serverToken = token,
27+
partnerId = partnerRepository.getPartnerIdByCredentialsServerToken(token)
28+
?: partnerRepository.getPartnerIdByCredentialsTokenA(credentialsTokenA = token)
29+
?: throw OcpiClientInvalidParametersException(
30+
"Invalid token ($token) - should be either a TokenA or a ServerToken",
31+
),
2732
)
2833
}
2934

@@ -61,16 +66,17 @@ open class CredentialsServerService(
6166
debugHeaders = debugHeaders,
6267
)
6368

69+
// Remove token A because it is useless from now on
70+
partnerRepository.invalidateCredentialsTokenA(partnerId = partnerId)
71+
6472
// Return Credentials objet to sender with the token C inside (which is for us the server token)
6573
getCredentials(
6674
serverToken = partnerRepository.saveCredentialsServerToken(
6775
partnerId = partnerId,
6876
credentialsServerToken = generateUUIDv4Token(),
6977
),
70-
).also {
71-
// Remove token A because it is useless from now on
72-
partnerRepository.invalidateCredentialsTokenA(partnerId = partnerId)
73-
}
78+
partnerId = partnerId,
79+
)
7480
}
7581

7682
override suspend fun put(
@@ -109,6 +115,7 @@ open class CredentialsServerService(
109115
partnerId = partnerId,
110116
credentialsServerToken = generateUUIDv4Token(),
111117
),
118+
partnerId = partnerId,
112119
)
113120
}
114121

@@ -218,9 +225,9 @@ open class CredentialsServerService(
218225
partnerRepository.saveEndpoints(partnerId = partnerId, endpoints = versionDetail.endpoints)
219226
}
220227

221-
private suspend fun getCredentials(serverToken: String): Credentials = Credentials(
228+
private suspend fun getCredentials(serverToken: String, partnerId: String): Credentials = Credentials(
222229
token = serverToken,
223230
url = serverVersionsUrlProvider(),
224-
roles = credentialsRoleRepository.getCredentialsRoles(),
231+
roles = credentialsRoleRepository.getCredentialsRoles(partnerId),
225232
)
226233
}

ocpi-toolkit-2.2.1/src/test/kotlin/com/izivia/ocpi/toolkit/samples/credentials/CredentialsReceiver.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ fun main() {
4242
service = CredentialsServerService(
4343
partnerRepository = receiverPlatformRepository,
4444
credentialsRoleRepository = object : CredentialsRoleRepository {
45-
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
45+
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
4646
CredentialRole(
4747
role = Role.EMSP,
4848
businessDetails = BusinessDetails(name = "Receiver", website = null, logo = null),

ocpi-toolkit-2.2.1/src/test/kotlin/com/izivia/ocpi/toolkit/samples/credentials/CredentialsSender.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ fun main() {
5858
clientPartnerRepository = senderPlatformRepository,
5959
clientVersionsRepository = senderVersionsRepository,
6060
clientCredentialsRoleRepository = object : CredentialsRoleRepository {
61-
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
61+
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
6262
CredentialRole(
6363
role = Role.CPO,
6464
businessDetails = BusinessDetails(name = "Sender", website = null, logo = null),

ocpi-toolkit-2.2.1/src/test/kotlin/com/izivia/ocpi/toolkit/tests/integration/CredentialsIntegrationTests.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class CredentialsIntegrationTests : BaseServerIntegrationTest() {
6565
service = CredentialsServerService(
6666
partnerRepository = receiverPlatformRepo,
6767
credentialsRoleRepository = object : CredentialsRoleRepository {
68-
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
68+
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
6969
CredentialRole(
7070
role = Role.EMSP,
7171
businessDetails = BusinessDetails(name = "Receiver", website = null, logo = null),
@@ -135,7 +135,7 @@ class CredentialsIntegrationTests : BaseServerIntegrationTest() {
135135
clientPartnerRepository = PartnerMongoRepository(collection = senderServerSetupResult.partnerCollection),
136136
clientVersionsRepository = VersionsCacheRepository(baseUrl = senderServerSetupResult.transport.baseUrl),
137137
clientCredentialsRoleRepository = object : CredentialsRoleRepository {
138-
override suspend fun getCredentialsRoles(): List<CredentialRole> = listOf(
138+
override suspend fun getCredentialsRoles(partnerId: String): List<CredentialRole> = listOf(
139139
CredentialRole(
140140
role = Role.CPO,
141141
businessDetails = BusinessDetails(name = "Sender", website = null, logo = null),

0 commit comments

Comments
 (0)