mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 16:56:56 +00:00
Endpoint getConsumers written as a New Style Endpoint
This commit is contained in:
parent
fe4f6b2e84
commit
73fb7aefbe
@ -67,7 +67,8 @@ object NewStyle {
|
||||
(nameOf(Implementations3_1_0.callsLimit), ApiVersion.v3_1_0.toString),
|
||||
(nameOf(Implementations3_1_0.checkFundsAvailable), ApiVersion.v3_1_0.toString),
|
||||
(nameOf(Implementations3_1_0.getConsumer), ApiVersion.v3_1_0.toString),
|
||||
(nameOf(Implementations3_1_0.getConsumersForCurrentUser), ApiVersion.v3_1_0.toString)
|
||||
(nameOf(Implementations3_1_0.getConsumersForCurrentUser), ApiVersion.v3_1_0.toString),
|
||||
(nameOf(Implementations3_1_0.getConsumers), ApiVersion.v3_1_0.toString)
|
||||
)
|
||||
|
||||
|
||||
|
||||
@ -682,6 +682,46 @@ trait APIMethods310 {
|
||||
}
|
||||
|
||||
|
||||
|
||||
resourceDocs += ResourceDoc(
|
||||
getConsumers,
|
||||
implementedInApiVersion,
|
||||
"getConsumers",
|
||||
"GET",
|
||||
"/management/consumers",
|
||||
"Get Consumers",
|
||||
s"""Get the all Consumers.
|
||||
|
|
||||
|""",
|
||||
emptyObjectJson,
|
||||
consumersJson310,
|
||||
List(
|
||||
UserNotLoggedIn,
|
||||
UserHasMissingRoles,
|
||||
UnknownError
|
||||
),
|
||||
Catalogs(notCore, notPSD2, notOBWG),
|
||||
List(apiTagConsumer, apiTagApi),
|
||||
Some(List(canGetConsumers)))
|
||||
|
||||
|
||||
lazy val getConsumers: OBPEndpoint = {
|
||||
case "management" :: "consumers" :: Nil JsonGet _ => {
|
||||
cc =>
|
||||
for {
|
||||
(Full(u), callContext) <- extractCallContext(UserNotLoggedIn, cc)
|
||||
_ <- Helper.booleanToFuture(failMsg = UserHasMissingRoles + CanGetConsumers) {
|
||||
hasEntitlement("", u.userId, ApiRole.canGetConsumers)
|
||||
}
|
||||
consumers <- Consumers.consumers.vend.getConsumersFuture()
|
||||
users <- Users.users.vend.getUsersByUserIdsFuture(consumers.map(_.createdByUserId.get))
|
||||
} yield {
|
||||
(createConsumersJson(consumers, users), callContext.map(_.copy(httpCode = Some(200))))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -213,4 +213,10 @@ object JSONFactory310{
|
||||
consumers.map(createConsumerJSON(_, user))
|
||||
}
|
||||
|
||||
def createConsumersJson(consumers: List[Consumer], users: List[User]): List[ConsumerJson] = {
|
||||
consumers.map(
|
||||
c => createConsumerJSON(c, users.filter(_.userId==c.createdByUserId.get).headOption)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@ -191,7 +191,7 @@ object OBPAPI3_1_0 extends OBPRestHelper with APIMethods130 with APIMethods140 w
|
||||
Implementations2_1_0.getRoles ::
|
||||
Implementations2_1_0.getEntitlementsByBankAndUser ::
|
||||
// Implementations2_1_0.getConsumer ::
|
||||
Implementations2_1_0.getConsumers ::
|
||||
// Implementations2_1_0.getConsumers ::
|
||||
Implementations2_1_0.enableDisableConsumers ::
|
||||
Implementations2_1_0.addCardForBank ::
|
||||
// Implementations2_1_0.getUsers ::
|
||||
@ -294,6 +294,7 @@ object OBPAPI3_1_0 extends OBPRestHelper with APIMethods130 with APIMethods140 w
|
||||
Implementations3_1_0.checkFundsAvailable ::
|
||||
Implementations3_1_0.getConsumer ::
|
||||
Implementations3_1_0.getConsumersForCurrentUser ::
|
||||
Implementations3_1_0.getConsumers ::
|
||||
Nil
|
||||
|
||||
val allResourceDocs = Implementations3_1_0.resourceDocs ++
|
||||
|
||||
@ -29,6 +29,7 @@ trait ConsumersProvider {
|
||||
def getConsumerByConsumerKeyFuture(consumerKey: String): Future[Box[Consumer]]
|
||||
def getConsumerByConsumerIdFuture(consumerId: String): Future[Box[Consumer]]
|
||||
def getConsumersByUserIdFuture(userId: String): Future[List[Consumer]]
|
||||
def getConsumersFuture(): Future[List[Consumer]]
|
||||
def createConsumer(key: Option[String], secret: Option[String], isActive: Option[Boolean], name: Option[String], appType: Option[AppType], description: Option[String], developerEmail: Option[String], redirectURL: Option[String], createdByUserId: Option[String]): Box[Consumer]
|
||||
def updateConsumer(id: Long, key: Option[String], secret: Option[String], isActive: Option[Boolean], name: Option[String], appType: Option[AppType], description: Option[String], developerEmail: Option[String], redirectURL: Option[String], createdByUserId: Option[String]): Box[Consumer]
|
||||
def updateConsumerCallLimits(id: Long, perMinute: Option[String], perHour: Option[String], perDay: Option[String], perWeek: Option[String], perMonth: Option[String]): Future[Box[Consumer]]
|
||||
@ -44,6 +45,7 @@ class RemotedataConsumersCaseClasses {
|
||||
case class getConsumerByConsumerKeyFuture(consumerKey: String)
|
||||
case class getConsumerByConsumerIdFuture(consumerId: String)
|
||||
case class getConsumersByUserIdFuture(userId: String)
|
||||
case class getConsumersFuture()
|
||||
case class createConsumer(key: Option[String], secret: Option[String], isActive: Option[Boolean], name: Option[String], appType: Option[AppType], description: Option[String], developerEmail: Option[String], redirectURL: Option[String], createdByUserId: Option[String])
|
||||
case class updateConsumer(id: Long, key: Option[String], secret: Option[String], isActive: Option[Boolean], name: Option[String], appType: Option[AppType], description: Option[String], developerEmail: Option[String], redirectURL: Option[String], createdByUserId: Option[String])
|
||||
case class updateConsumerCallLimits(id: Long, perMinute: Option[String], perHour: Option[String], perDay: Option[String], perWeek: Option[String], perMonth: Option[String])
|
||||
|
||||
@ -106,10 +106,17 @@ object MappedConsumersProvider extends ConsumersProvider {
|
||||
def getConsumersByUserId(userId: String): List[Consumer] = {
|
||||
Consumer.findAll(By(Consumer.createdByUserId, userId))
|
||||
}
|
||||
def getConsumersByUserIdFuture(userId: String): Future[List[Consumer]] = {
|
||||
override def getConsumersByUserIdFuture(userId: String): Future[List[Consumer]] = {
|
||||
Future(getConsumersByUserId(userId))
|
||||
}
|
||||
|
||||
def getConsumers(): List[Consumer] = {
|
||||
Consumer.findAll()
|
||||
}
|
||||
override def getConsumersFuture(): Future[List[Consumer]] = {
|
||||
Future(getConsumers())
|
||||
}
|
||||
|
||||
override def createConsumer(key: Option[String],
|
||||
secret: Option[String],
|
||||
isActive: Option[Boolean],
|
||||
|
||||
@ -41,6 +41,9 @@ object RemotedataConsumers extends ObpActorInit with ConsumersProvider {
|
||||
def getConsumersByUserIdFuture(id: String): Future[List[Consumer]] =
|
||||
(actor ? cc.getConsumersByUserIdFuture(id)).mapTo[List[Consumer]]
|
||||
|
||||
def getConsumersFuture(): Future[List[Consumer]] =
|
||||
(actor ? cc.getConsumersFuture()).mapTo[List[Consumer]]
|
||||
|
||||
def createConsumer(key: Option[String], secret: Option[String], isActive: Option[Boolean], name: Option[String], appType: Option[AppType], description: Option[String], developerEmail: Option[String], redirectURL: Option[String], createdByUserId: Option[String]): Box[Consumer] =
|
||||
extractFutureToBox(actor ? cc.createConsumer(key, secret, isActive, name, appType, description, developerEmail, redirectURL, createdByUserId))
|
||||
|
||||
|
||||
@ -37,6 +37,10 @@ class RemotedataConsumersActor extends Actor with ObpActorHelper with MdcLoggabl
|
||||
logger.debug("getConsumersByUserIdFuture(" + id +")")
|
||||
sender ! (mapper.getConsumersByUserId(id))
|
||||
|
||||
case cc.getConsumersFuture() =>
|
||||
logger.debug("getConsumersFuture()")
|
||||
sender ! (mapper.getConsumers())
|
||||
|
||||
case cc.createConsumer(key: Option[String], secret: Option[String], isActive: Option[Boolean], name: Option[String], appType: Option[AppType], description: Option[String], developerEmail: Option[String], redirectURL: Option[String], createdByUserId: Option[String]) =>
|
||||
logger.debug("createConsumer(" + "*****" + ", " + "*****" + ", " + isActive.getOrElse("None") + ", " + name.getOrElse("None") + ", " + appType.getOrElse("None") + ", " + description.getOrElse("None") + ", " + developerEmail.getOrElse("None") + ", " + redirectURL.getOrElse("None") + ", " + createdByUserId.getOrElse("None") + ")")
|
||||
sender ! extractResult(mapper.createConsumer(key, secret, isActive, name, appType, description, developerEmail, redirectURL, createdByUserId))
|
||||
|
||||
@ -42,6 +42,9 @@ object RemotedataUsers extends ObpActorInit with Users {
|
||||
def getUserByUserIdFuture(userId : String) : Future[Box[User]] =
|
||||
(actor ? cc.getUserByUserIdFuture(userId)).mapTo[Box[User]]
|
||||
|
||||
def getUsersByUserIdsFuture(userIds : List[String]) : Future[List[User]] =
|
||||
(actor ? cc.getUsersByUserIdsFuture(userIds)).mapTo[List[User]]
|
||||
|
||||
def getUserByUserName(userName : String) : Box[ResourceUser] =
|
||||
extractFutureToBox(actor ? cc.getUserByUserName(userName))
|
||||
|
||||
|
||||
@ -48,6 +48,11 @@ class RemotedataUsersActor extends Actor with ObpActorHelper with MdcLoggable {
|
||||
logger.debug("getUserByUserIdFuture(" + userId +")")
|
||||
sender ! (mapper.getUserByUserId(userId))
|
||||
|
||||
|
||||
case cc.getUsersByUserIdsFuture(userIds: List[String]) =>
|
||||
logger.debug("getUsersByUserIdsFuture(" + userIds +")")
|
||||
sender ! extractResult(mapper.getUsersByUserIdsFuture(userIds))
|
||||
|
||||
case cc.getUserByUserName(userName: String) =>
|
||||
logger.debug("getUserByUserName(" + userName +")")
|
||||
sender ! extractResult(mapper.getUserByUserName(userName))
|
||||
|
||||
@ -70,6 +70,14 @@ object LiftUsers extends Users with MdcLoggable{
|
||||
}
|
||||
}
|
||||
|
||||
def getUsersByUserIds(userIds : List[String]) : List[User] = {
|
||||
ResourceUser.findAll(ByList(ResourceUser.userId_, userIds))
|
||||
}
|
||||
|
||||
def getUsersByUserIdsFuture(userIds : List[String]) : Future[List[User]] = {
|
||||
Future(getUsersByUserIds(userIds))
|
||||
}
|
||||
|
||||
override def getUserByUserName(userName: String): Box[ResourceUser] = {
|
||||
ResourceUser.find(By(ResourceUser.name_, userName))
|
||||
}
|
||||
|
||||
@ -39,6 +39,7 @@ trait Users {
|
||||
//resourceuser has two ids: id(Long)and userid_(String), this method use userid_(String)
|
||||
def getUserByUserId(userId : String) : Box[User]
|
||||
def getUserByUserIdFuture(userId : String) : Future[Box[User]]
|
||||
def getUsersByUserIdsFuture(userIds : List[String]) : Future[List[User]]
|
||||
|
||||
// find ResourceUser by Resourceuser user name
|
||||
def getUserByUserName(userName: String) : Box[ResourceUser]
|
||||
@ -71,6 +72,7 @@ class RemotedataUsersCaseClasses {
|
||||
case class getOrCreateUserByProviderIdFuture(provider : String, idGivenByProvider : String)
|
||||
case class getUserByUserId(userId : String)
|
||||
case class getUserByUserIdFuture(userId : String)
|
||||
case class getUsersByUserIdsFuture(userId : List[String])
|
||||
case class getUserByUserName(userName : String)
|
||||
case class getUserByUserNameFuture(userName : String)
|
||||
case class getUserByEmail(email : String)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user