From ee1ab449cf91afade79c891d04afe719052c844c Mon Sep 17 00:00:00 2001 From: simonredfern Date: Sat, 27 Dec 2025 22:01:21 +0100 Subject: [PATCH] current-consumer step 1 --- .../scala/code/api/v6_0_0/APIMethods600.scala | 48 ++++++++++++++++++- .../code/api/v6_0_0/JSONFactory6.0.0.scala | 4 ++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala b/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala index b9c10d22e..1a610f6ca 100644 --- a/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala +++ b/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala @@ -27,7 +27,7 @@ import code.api.v5_0_0.{ViewJsonV500, ViewsJsonV500} import code.api.v5_1_0.{JSONFactory510, PostCustomerLegalNameJsonV510} import code.api.dynamic.entity.helper.{DynamicEntityHelper, DynamicEntityInfo} import code.api.v6_0_0.JSONFactory600.{AddUserToGroupResponseJsonV600, DynamicEntityDiagnosticsJsonV600, DynamicEntityIssueJsonV600, GroupEntitlementJsonV600, GroupEntitlementsJsonV600, GroupJsonV600, GroupsJsonV600, PostGroupJsonV600, PostGroupMembershipJsonV600, PostResetPasswordUrlJsonV600, PutGroupJsonV600, ReferenceTypeJsonV600, ReferenceTypesJsonV600, ResetPasswordUrlJsonV600, RoleWithEntitlementCountJsonV600, RolesWithEntitlementCountsJsonV600, ScannedApiVersionJsonV600, UpdateViewJsonV600, UserGroupMembershipJsonV600, UserGroupMembershipsJsonV600, ValidateUserEmailJsonV600, ValidateUserEmailResponseJsonV600, ViewJsonV600, ViewPermissionJsonV600, ViewPermissionsJsonV600, ViewsJsonV600, createAbacRuleJsonV600, createAbacRulesJsonV600, createActiveCallLimitsJsonV600, createCallLimitJsonV600, createRedisCallCountersJson} -import code.api.v6_0_0.{AbacRuleJsonV600, AbacRuleResultJsonV600, AbacRulesJsonV600, CreateAbacRuleJsonV600, ExecuteAbacRuleJsonV600, UpdateAbacRuleJsonV600} +import code.api.v6_0_0.{AbacRuleJsonV600, AbacRuleResultJsonV600, AbacRulesJsonV600, CreateAbacRuleJsonV600, CurrentConsumerJsonV600, ExecuteAbacRuleJsonV600, UpdateAbacRuleJsonV600} import code.api.v6_0_0.OBPAPI6_0_0 import code.abacrule.{AbacRuleEngine, MappedAbacRuleProvider} import code.metrics.APIMetrics @@ -550,6 +550,52 @@ trait APIMethods600 { } } + staticResourceDocs += ResourceDoc( + getCurrentConsumer, + implementedInApiVersion, + nameOf(getCurrentConsumer), + "GET", + "/current-consumer", + "Get Current Consumer", + """Returns the consumer_id of the current authenticated consumer. + | + |This endpoint requires authentication via: + |* User authentication (OAuth, DirectLogin, etc.) - returns the consumer associated with the user's session + |* Consumer/Client authentication - returns the consumer credentials being used + | + |Authentication is required.""", + EmptyBody, + CurrentConsumerJsonV600( + consumer_id = "123" + ), + List( + UserNotLoggedIn, + InvalidConsumerCredentials, + UnknownError + ), + apiTagConsumer :: apiTagApi :: Nil + ) + + lazy val getCurrentConsumer: OBPEndpoint = { + case "current-consumer" :: Nil JsonGet _ => { + cc => { + implicit val ec = EndpointContext(Some(cc)) + for { + consumer <- Future { + cc.consumer match { + case Full(c) => Full(c) + case _ => Empty + } + } map { + unboxFullOrFail(_, cc.callContext, InvalidConsumerCredentials, 401) + } + } yield { + (CurrentConsumerJsonV600(consumer.consumerId.get), HttpCode.`200`(cc.callContext)) + } + } + } + } + staticResourceDocs += ResourceDoc( getDynamicEntityDiagnostics, implementedInApiVersion, diff --git a/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala b/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala index 2d55641c1..c2b26f0b2 100644 --- a/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala +++ b/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala @@ -67,6 +67,10 @@ case class TokenJSON( token: String ) +case class CurrentConsumerJsonV600( + consumer_id: String +) + case class CallLimitPostJsonV600( from_date: java.util.Date, to_date: java.util.Date,