current-consumer step 1

This commit is contained in:
simonredfern 2025-12-27 22:01:21 +01:00
parent e8be6ea293
commit ee1ab449cf
2 changed files with 51 additions and 1 deletions

View File

@ -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,

View File

@ -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,