Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(ocpi-2.2.1): Fixed usage of tokens & review PlatformRepository #16

Merged
merged 3 commits into from
Nov 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ fun HttpRequest.parseAuthorizationHeader() = (headers["Authorization"] ?: header
* @throws OcpiClientNotEnoughInformationException if the token is missing
* @throws HttpException if the authorization header is missing
*/
fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
fun PlatformRepository.checkToken(httpRequest: HttpRequest) {
val token = httpRequest.parseAuthorizationHeader()

if (!platformExistsWithTokenA(token) &&
Expand All @@ -143,9 +143,9 @@ fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
}
}

fun TransportClientBuilder.buildFor(module: ModuleID, platform: String, platformRepository: PlatformRepository) =
fun TransportClientBuilder.buildFor(module: ModuleID, platformUrl: String, platformRepository: PlatformRepository) =
platformRepository
.getEndpoints(platformUrl = platform)
.getEndpoints(platformUrl = platformUrl)
.find { it.identifier == module }
?.let { build(baseUrl = it.url) }
?: throw OcpiToolkitUnknownEndpointException(endpointName = module.name)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class LocationsCpoClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down Expand Up @@ -174,4 +174,4 @@ class LocationsCpoClient(
).authenticate(platformRepository = platformRepository, baseUrl = serverVersionsEndpointUrl)
)
.parseBody()
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.locations

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.transport.TransportServer
import com.izivia.ocpi.toolkit.transport.domain.FixedPathSegment
Expand All @@ -28,7 +28,7 @@ class LocationsCpoServer(
method = HttpMethod.GET,
path = basePath,
queryParams = listOf("date_from", "date_to", "offset", "limit"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
val dateFrom = req.queryParams["date_from"]
Expand All @@ -47,7 +47,7 @@ class LocationsCpoServer(
transportServer.handle(
method = HttpMethod.GET,
path = basePath + VariablePathSegment("locationId"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -63,7 +63,7 @@ class LocationsCpoServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -81,7 +81,7 @@ class LocationsCpoServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class LocationsEmspClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.izivia.ocpi.toolkit.modules.locations

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.mapper
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.locations.domain.*
import com.izivia.ocpi.toolkit.transport.TransportServer
Expand Down Expand Up @@ -32,7 +32,7 @@ class LocationsEmspServer(
VariablePathSegment("partyId"),
VariablePathSegment("locationId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -52,7 +52,7 @@ class LocationsEmspServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -74,7 +74,7 @@ class LocationsEmspServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -95,7 +95,7 @@ class LocationsEmspServer(
VariablePathSegment("partyId"),
VariablePathSegment("locationId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -116,7 +116,7 @@ class LocationsEmspServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -139,7 +139,7 @@ class LocationsEmspServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -161,7 +161,7 @@ class LocationsEmspServer(
VariablePathSegment("partyId"),
VariablePathSegment("locationId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -182,7 +182,7 @@ class LocationsEmspServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -205,7 +205,7 @@ class LocationsEmspServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class TokensCpoClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.tokens,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.izivia.ocpi.toolkit.modules.tokens

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.mapper
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.tokens.domain.Token
import com.izivia.ocpi.toolkit.modules.tokens.domain.TokenPartial
Expand All @@ -29,7 +29,7 @@ class TokensCpoServer(
VariablePathSegment("partyId"),
VariablePathSegment("tokenUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -48,7 +48,7 @@ class TokensCpoServer(
VariablePathSegment("partyId"),
VariablePathSegment("tokenUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -68,7 +68,7 @@ class TokensCpoServer(
VariablePathSegment("partyId"),
VariablePathSegment("tokenUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class TokensEmspClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.tokens,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.izivia.ocpi.toolkit.modules.tokens

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.mapper
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.tokens.domain.LocationReferences
import com.izivia.ocpi.toolkit.modules.tokens.domain.TokenType
Expand Down Expand Up @@ -34,7 +34,7 @@ class TokensEmspServer(
"ocpi-to-country-code",
"ocpi-to-party-id"
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
val dateFrom = req.queryParams["date_from"]
Expand All @@ -58,7 +58,7 @@ class TokensEmspServer(
VariablePathSegment("tokenUid")
),
queryParams = listOf("type"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -76,7 +76,7 @@ class TokensEmspServer(
FixedPathSegment("authorize")
),
queryParams = listOf("type"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.versions

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.versions.validation.VersionDetailsValidationService
import com.izivia.ocpi.toolkit.transport.TransportServer
Expand All @@ -23,7 +23,7 @@ class VersionDetailsServer(
path = basePath + listOf(
VariablePathSegment("versionNumber")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
validationService.getVersionDetails(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.versions

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.versions.validation.VersionsValidationService
import com.izivia.ocpi.toolkit.transport.TransportServer
Expand All @@ -23,7 +23,7 @@ class VersionsServer(
transportServer.handle(
method = HttpMethod.GET,
path = basePath,
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
validationService.getVersions()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ fun HttpRequest.parseAuthorizationHeader() = (headers["Authorization"] ?: header
* @throws OcpiClientNotEnoughInformationException if the token is missing
* @throws HttpException if the authorization header is missing
*/
fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
fun PlatformRepository.checkToken(httpRequest: HttpRequest) {
val token = httpRequest.parseAuthorizationHeader()

if (!platformExistsWithTokenA(token) &&
Expand All @@ -143,9 +143,9 @@ fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
}
}

fun TransportClientBuilder.buildFor(module: ModuleID, platform: String, platformRepository: PlatformRepository) =
fun TransportClientBuilder.buildFor(module: ModuleID, platformUrl: String, platformRepository: PlatformRepository) =
platformRepository
.getEndpoints(platformUrl = platform)
.getEndpoints(platformUrl = platformUrl)
.find { it.identifier == module }
?.let { build(baseUrl = it.url) }
?: throw OcpiToolkitUnknownEndpointException(endpointName = module.name)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class LocationsCpoClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down Expand Up @@ -174,4 +174,4 @@ class LocationsCpoClient(
).authenticate(platformRepository = platformRepository, baseUrl = serverVersionsEndpointUrl)
)
.parseBody()
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.locations

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.transport.TransportServer
import com.izivia.ocpi.toolkit.transport.domain.FixedPathSegment
Expand All @@ -28,7 +28,7 @@ class LocationsCpoServer(
method = HttpMethod.GET,
path = basePath,
queryParams = listOf("date_from", "date_to", "offset", "limit"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
val dateFrom = req.queryParams["date_from"]
Expand All @@ -47,7 +47,7 @@ class LocationsCpoServer(
transportServer.handle(
method = HttpMethod.GET,
path = basePath + VariablePathSegment("locationId"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -63,7 +63,7 @@ class LocationsCpoServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -81,7 +81,7 @@ class LocationsCpoServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class LocationsEmspClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Loading