Skip to content
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
28 changes: 14 additions & 14 deletions obp-api/src/main/scala/bootstrap/liftweb/Boot.scala
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,6 @@ TESOBE (http://www.tesobe.com/)
*/
package bootstrap.liftweb

import java.io.{File, FileInputStream}
import java.util.stream.Collectors
import java.util.{Locale, TimeZone}
import code.CustomerDependants.MappedCustomerDependant
import code.DynamicData.DynamicData
import code.DynamicEndpoint.DynamicEndpoint
Expand All @@ -43,8 +40,8 @@ import code.api.ResourceDocs1_4_0._
import code.api._
import code.api.attributedefinition.AttributeDefinition
import code.api.cache.Redis
import code.api.util.APIUtil.{enableVersionIfAllowed, errorJsonResponse, getPropsValue}
import code.api.util.ApiRole.CanCreateEntitlementAtAnyBank
import code.api.util.APIUtil.{enableVersionIfAllowed, errorJsonResponse, getPropsValue, gitCommit}
import code.api.util._
import code.api.util.migration.Migration
import code.api.util.migration.Migration.DbFunction
Expand All @@ -53,11 +50,10 @@ import code.apicollectionendpoint.ApiCollectionEndpoint
import code.atmattribute.AtmAttribute
import code.atms.MappedAtm
import code.authtypevalidation.AuthenticationTypeValidation
import code.bankaccountbalance.BankAccountBalance
import code.bankattribute.BankAttribute
import code.bankconnectors.storedprocedure.StoredProceduresMockedData
import code.bankconnectors.{Connector, ConnectorEndpoints}
import code.branches.MappedBranch
import code.etag.MappedETag
import code.cardattribute.MappedCardAttribute
import code.cards.{MappedPhysicalCard, PinReset}
import code.connectormethod.ConnectorMethod
Expand All @@ -79,6 +75,7 @@ import code.endpointMapping.EndpointMapping
import code.endpointTag.EndpointTag
import code.entitlement.{Entitlement, MappedEntitlement}
import code.entitlementrequest.MappedEntitlementRequest
import code.etag.MappedETag
import code.fx.{MappedCurrency, MappedFXRate}
import code.kycchecks.MappedKycCheck
import code.kycdocuments.MappedKycDocument
Expand All @@ -96,9 +93,9 @@ import code.metadata.wheretags.MappedWhereTag
import code.methodrouting.MethodRouting
import code.metrics.{MappedConnectorMetric, MappedMetric, MetricArchive}
import code.migration.MigrationScriptLog
import code.model._
import code.model.dataAccess._
import code.model.dataAccess.internalMapping.AccountIdMapping
import code.model._
import code.obp.grpc.HelloWorldServer
import code.productAttributeattribute.MappedProductAttribute
import code.productcollection.MappedProductCollection
Expand All @@ -107,10 +104,11 @@ import code.productfee.ProductFee
import code.products.MappedProduct
import code.ratelimiting.RateLimiting
import code.regulatedentities.MappedRegulatedEntity
import code.scheduler.{ConsentScheduler, DataBaseCleanerScheduler, DatabaseDriverScheduler, JobScheduler, MetricsArchiveScheduler, TransactionScheduler}
import code.regulatedentities.attribute.RegulatedEntityAttribute
import code.scheduler._
import code.scope.{MappedScope, MappedUserScope}
import code.signingbaskets.{MappedSigningBasket, MappedSigningBasketConsent, MappedSigningBasketPayment}
import code.snippet.{OAuthAuthorisation, OAuthWorkedThanks}
import code.snippet.OAuthWorkedThanks
import code.socialmedia.MappedSocialMedia
import code.standingorders.StandingOrder
import code.taxresidence.MappedTaxResidence
Expand All @@ -133,17 +131,13 @@ import code.views.Views
import code.views.system.{AccountAccess, ViewDefinition, ViewPermission}
import code.webhook.{BankAccountNotificationWebhook, MappedAccountWebhook, SystemAccountNotificationWebhook}
import code.webuiprops.WebUiProps
import code.regulatedentities.attribute.RegulatedEntityAttribute
import com.openbankproject.commons.model.ErrorMessage
import com.openbankproject.commons.util.Functions.Implicits._
import com.openbankproject.commons.util.{ApiVersion, Functions}
import code.bankaccountbalance.BankAccountBalance
import javax.mail.internet.MimeMessage
import net.liftweb.common._
import net.liftweb.db.{DB, DBLogEntry}
import net.liftweb.http.LiftRules.DispatchPF
import net.liftweb.http._
import net.liftweb.http.provider.HTTPCookie
import net.liftweb.json.Extraction
import net.liftweb.mapper.{DefaultConnectionIdentifier => _, _}
import net.liftweb.sitemap.Loc._
Expand All @@ -152,7 +146,11 @@ import net.liftweb.util.Helpers._
import net.liftweb.util._
import org.apache.commons.io.FileUtils

import scala.concurrent.{ExecutionContext, Future}
import java.io.{File, FileInputStream}
import java.util.stream.Collectors
import java.util.{Locale, TimeZone}
import javax.mail.internet.MimeMessage
import scala.concurrent.ExecutionContext

/**
* A class that's instantiated early and run. It allows the application
Expand Down Expand Up @@ -1010,6 +1008,8 @@ class Boot extends MdcLoggable {
}

}

LiftRules.statelessDispatch.append(aliveCheck)

}

Expand Down
40 changes: 40 additions & 0 deletions obp-api/src/main/scala/code/api/aliveCheck.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
Open Bank Project - API
Copyright (C) 2011-2019, TESOBE GmbH

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Email: contact@tesobe.com
TESOBE GmbH.
Osloer Strasse 16/17
Berlin 13359, Germany

This product includes software developed at
TESOBE (http://www.tesobe.com/)

*/
package code.api

import code.util.Helper.MdcLoggable
import net.liftweb.http._
import net.liftweb.http.rest.RestHelper
import net.liftweb.json.Extraction


object aliveCheck extends RestHelper with MdcLoggable {
serve {
case Req("alive" :: Nil, _, GetRequest) =>
JsonResponse(Extraction.decompose(true), Nil, Nil, 200)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -342,13 +342,19 @@ of the PSU at this ASPSP.
attribute.value.equalsIgnoreCase("card")
).isEmpty)

(balances, callContext) <- JSONFactory_BERLIN_GROUP_1_3.flattenOBPReturnType(bankAccountsFiltered.map(bankAccont => code.api.util.newstyle.BankAccountBalanceNewStyle.getBankAccountBalances(
bankAccont.accountId,
callContext
)))

} yield {
(JSONFactory_BERLIN_GROUP_1_3.createAccountListJson(
bankAccountsFiltered,
canReadBalancesAccounts,
canReadTransactionsAccounts,
u,
withBalanceParam
withBalanceParam,
balances
), callContext)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ import net.liftweb.json.{JValue, parse}

import java.text.SimpleDateFormat
import java.util.Date

import scala.concurrent.Future
import com.openbankproject.commons.ExecutionContext.Implicits.global
case class JvalueCaseClass(jvalueToCaseclass: JValue)

object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
Expand Down Expand Up @@ -305,13 +306,24 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
case class UpdatePaymentPsuDataJson(
scaAuthenticationData: String
)



def flattenOBPReturnType(
list: List[OBPReturnType[List[BankAccountBalanceTrait]]]
): OBPReturnType[List[BankAccountBalanceTrait]] = {
Future.sequence(list).map { results =>
val combinedBalances = results.flatMap(_._1) // Combine all balances
val callContext = results.headOption.flatMap(_._2) // Use the first CallContext
(combinedBalances, callContext)
}
}

def createAccountListJson(bankAccounts: List[BankAccount],
canReadBalancesAccounts: List[BankIdAccountId],
canReadTransactionsAccounts: List[BankIdAccountId],
user: User,
withBalanceParam:Option[Boolean]
withBalanceParam:Option[Boolean],
balances: List[BankAccountBalanceTrait]
): CoreAccountsJsonV13 = {
CoreAccountsJsonV13(bankAccounts.map {
x =>
Expand All @@ -322,9 +334,9 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
val transactionRef = LinkHrefJson(s"/$commonPath/transactions")
val canReadTransactions = canReadTransactionsAccounts.map(_.accountId.value).contains(x.accountId.value)
val accountBalances = if(withBalanceParam == Some(true)){
Some(List(CoreAccountBalanceJson(
balanceAmount = AmountOfMoneyV13(x.currency, x.balance.toString),
balanceType = "openingBooked")))
Some(balances.filter(_.accountId.equals(x.accountId)).map(balance =>(List(CoreAccountBalanceJson(
balanceAmount = AmountOfMoneyV13(x.currency, balance.balanceAmount.toString()),
balanceType = balance.balanceType)))).flatten)
}else{
None
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package code.bankconnectors.generator

import code.api.util.CodeGenerateUtils.createDocExample
import code.api.util.{APIUtil, CallContext}
import code.bankconnectors.{Connector, LocalMappedConnector}
import code.bankconnectors.Connector
import com.openbankproject.commons.util.ReflectUtils
import org.apache.commons.io.FileUtils
import org.apache.commons.lang3.StringUtils.uncapitalize
Expand Down Expand Up @@ -437,6 +437,10 @@ object ConnectorBuilderUtil {
"getAccountsHeldByUser",
"getRegulatedEntities",
"getRegulatedEntityByEntityId",
"getBankAccountBalancesByAccountId",
"getBankAccountBalanceById",
"createOrUpdateBankAccountBalance",
"deleteBankAccountBalance",
).distinct

/**
Expand Down
Loading