From 094f8e85e32bbc469f9a21006b8354422842b0a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Mili=C4=87?= Date: Tue, 24 Aug 2021 14:17:20 +0200 Subject: [PATCH] feature/Add is_active (boolean) to Product Attribute POST and GET APIs - done --- .../SwaggerDefinitionsJSON.scala | 14 ++++++++++++ .../main/scala/code/api/util/NewStyle.scala | 2 ++ .../scala/code/api/v3_1_0/APIMethods310.scala | 2 ++ .../scala/code/api/v4_0_0/APIMethods400.scala | 20 ++++++++++------- .../code/api/v4_0_0/JSONFactory4.0.0.scala | 21 ++++++++++++++---- .../scala/code/bankconnectors/Connector.scala | 1 + .../bankconnectors/LocalMappedConnector.scala | 3 ++- .../akka/AkkaConnector_vDec2018.scala | 13 ++++++----- .../rest/RestConnector_vMar2019.scala | 13 ++++++----- .../StoredProcedureConnector_vDec2019.scala | 13 ++++++----- .../MappedProductAttributeProvider.scala | 6 +++-- .../productattribute/ProductAttribute.scala | 6 +++-- .../RemotedataProductAttribute.scala | 2 +- .../RemotedataProductAttributeActor.scala | 8 ++++--- .../RestConnector_vMar2019_frozen_meta_data | Bin 112092 -> 112121 bytes .../commons/dto/JsonsTransfer.scala | 3 ++- 16 files changed, 87 insertions(+), 40 deletions(-) diff --git a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala index 1b8e0eb82..82d972008 100644 --- a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala +++ b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala @@ -3452,6 +3452,12 @@ object SwaggerDefinitionsJSON { name = "OVERDRAFT_START_DATE", `type` = "DATE_WITH_DAY", value = "2012-04-23" + ) + val productAttributeJsonV400 = ProductAttributeJsonV400( + name = "OVERDRAFT_START_DATE", + `type` = "DATE_WITH_DAY", + value = "2012-04-23", + is_active = Some(true) ) val productAttributeResponseJson = ProductAttributeResponseWithoutBankIdJson( product_code = "saving1", @@ -3460,6 +3466,14 @@ object SwaggerDefinitionsJSON { `type` = "DATE_WITH_DAY", value = "2012-04-23" ) + val productAttributeResponseJsonV400 = ProductAttributeResponseWithoutBankIdJsonV400( + product_code = "saving1", + product_attribute_id = "613c83ea-80f9-4560-8404-b9cd4ec42a7f", + name = "OVERDRAFT_START_DATE", + `type` = "DATE_WITH_DAY", + value = "2012-04-23", + is_active = Some(true) + ) val accountAttributeJson = AccountAttributeJson( name = "OVERDRAFT_START_DATE", diff --git a/obp-api/src/main/scala/code/api/util/NewStyle.scala b/obp-api/src/main/scala/code/api/util/NewStyle.scala index f890b473a..946ce3c04 100644 --- a/obp-api/src/main/scala/code/api/util/NewStyle.scala +++ b/obp-api/src/main/scala/code/api/util/NewStyle.scala @@ -1322,6 +1322,7 @@ object NewStyle { name: String, attributType: ProductAttributeType.Value, value: String, + isActive: Option[Boolean], callContext: Option[CallContext] ): OBPReturnType[ProductAttribute] = { Connector.connector.vend.createOrUpdateProductAttribute( @@ -1331,6 +1332,7 @@ object NewStyle { name: String, attributType: ProductAttributeType.Value, value: String, + isActive: Option[Boolean], callContext: Option[CallContext] ) map { i => (connectorEmptyResponse(i._1, callContext), i._2) diff --git a/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala b/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala index c1bc9b69e..1c2fb9480 100644 --- a/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala +++ b/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala @@ -2058,6 +2058,7 @@ trait APIMethods310 { postedData.name, productAttributeType, postedData.value, + None, callContext: Option[CallContext] ) } yield { @@ -2154,6 +2155,7 @@ trait APIMethods310 { postedData.name, productAttributeType, postedData.value, + None, callContext: Option[CallContext] ) } yield { diff --git a/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala b/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala index 480548f60..121f4620f 100644 --- a/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala +++ b/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala @@ -5487,8 +5487,8 @@ trait APIMethods400 { |${authenticationRequiredMessage(true)} | |""", - productAttributeJson, - productAttributeResponseJson, + productAttributeJsonV400, + productAttributeResponseJsonV400, List( InvalidJsonFormat, UnknownError @@ -5506,14 +5506,16 @@ trait APIMethods400 { (_, callContext) <- NewStyle.function.getBank(BankId(bankId), callContext) failMsg = s"$InvalidJsonFormat The Json body should be the $ProductAttributeJson " postedData <- NewStyle.function.tryons(failMsg, 400, callContext) { - json.extract[ProductAttributeJson] + json.extract[ProductAttributeJsonV400] } failMsg = s"$InvalidJsonFormat The `Type` field can only accept the following field: " + s"${ProductAttributeType.DOUBLE}(12.1234), ${ProductAttributeType.STRING}(TAX_NUMBER), ${ProductAttributeType.INTEGER}(123) and ${ProductAttributeType.DATE_WITH_DAY}(2012-04-23)" productAttributeType <- NewStyle.function.tryons(failMsg, 400, callContext) { ProductAttributeType.withName(postedData.`type`) } - + _ <- Future(Connector.connector.vend.getProduct(BankId(bankId), ProductCode(productCode))) map { + getFullBoxOrFail(_, callContext, ProductNotFoundByProductCode + " {" + productCode + "}", 400) + } (productAttribute, callContext) <- NewStyle.function.createOrUpdateProductAttribute( BankId(bankId), ProductCode(productCode), @@ -5521,6 +5523,7 @@ trait APIMethods400 { postedData.name, productAttributeType, postedData.value, + postedData.is_active, callContext: Option[CallContext] ) } yield { @@ -5546,8 +5549,8 @@ trait APIMethods400 { |${authenticationRequiredMessage(true)} | |""", - productAttributeJson, - productAttributeResponseJson, + productAttributeJsonV400, + productAttributeResponseJsonV400, List( UserHasMissingRoles, UnknownError @@ -5563,7 +5566,7 @@ trait APIMethods400 { (_, callContext) <- NewStyle.function.getBank(BankId(bankId), callContext) failMsg = s"$InvalidJsonFormat The Json body should be the $ProductAttributeJson " postedData <- NewStyle.function.tryons(failMsg, 400, callContext) { - json.extract[ProductAttributeJson] + json.extract[ProductAttributeJsonV400] } failMsg = s"$InvalidJsonFormat The `Type` field can only accept the following field: " + s"${ProductAttributeType.DOUBLE}(12.1234), ${ProductAttributeType.STRING}(TAX_NUMBER), ${ProductAttributeType.INTEGER}(123) and ${ProductAttributeType.DATE_WITH_DAY}(2012-04-23)" @@ -5578,6 +5581,7 @@ trait APIMethods400 { postedData.name, productAttributeType, postedData.value, + postedData.is_active, callContext: Option[CallContext] ) } yield { @@ -5603,7 +5607,7 @@ trait APIMethods400 { | |""", emptyObjectJson, - productAttributeResponseJson, + productAttributeResponseJsonV400, List( UserHasMissingRoles, UnknownError diff --git a/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala b/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala index ac626237c..75f436283 100644 --- a/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala +++ b/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala @@ -649,8 +649,13 @@ case class JsonSchemaV400( case class JsonValidationV400(operation_id: String, json_schema: JsonSchemaV400) // Validation related END - -case class ProductAttributeResponseJson( +case class ProductAttributeJsonV400( + name: String, + `type`: String, + value: String, + is_active: Option[Boolean] + ) +case class ProductAttributeResponseJsonV400( bank_id: String, product_code: String, product_attribute_id: String, @@ -659,6 +664,14 @@ case class ProductAttributeResponseJson( value: String, is_active: Option[Boolean] ) +case class ProductAttributeResponseWithoutBankIdJsonV400( + product_code: String, + product_attribute_id: String, + name: String, + `type`: String, + value: String, + is_active: Option[Boolean] + ) case class IbanCheckerJsonV400( is_valid: Boolean, @@ -1369,8 +1382,8 @@ object JSONFactory400 { } - def createProductAttributeJson(productAttribute: ProductAttribute): ProductAttributeResponseJson = - ProductAttributeResponseJson( + def createProductAttributeJson(productAttribute: ProductAttribute): ProductAttributeResponseJsonV400 = + ProductAttributeResponseJsonV400( bank_id = productAttribute.bankId.value, product_code = productAttribute.productCode.value, product_attribute_id = productAttribute.productAttributeId, diff --git a/obp-api/src/main/scala/code/bankconnectors/Connector.scala b/obp-api/src/main/scala/code/bankconnectors/Connector.scala index d61bb6ed7..3ba57d56a 100644 --- a/obp-api/src/main/scala/code/bankconnectors/Connector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/Connector.scala @@ -1989,6 +1989,7 @@ trait Connector extends MdcLoggable { name: String, productAttributeType: ProductAttributeType.Value, value: String, + isActive: Option[Boolean], callContext: Option[CallContext] ): OBPReturnType[Box[ProductAttribute]] = Future{(Failure(setUnimplementedError), callContext)} diff --git a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala index d75e97bd2..e937e25f3 100644 --- a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala @@ -3402,6 +3402,7 @@ object LocalMappedConnector extends Connector with MdcLoggable { name: String, attributType: ProductAttributeType.Value, value: String, + isActive: Option[Boolean], callContext: Option[CallContext] ): OBPReturnType[Box[ProductAttribute]] = ProductAttributeX.productAttributeProvider.vend.createOrUpdateProductAttribute( @@ -3410,7 +3411,7 @@ object LocalMappedConnector extends Connector with MdcLoggable { productAttributeId: Option[String], name: String, attributType: ProductAttributeType.Value, - value: String) map { + value: String, isActive: Option[Boolean]) map { (_, callContext) } diff --git a/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala b/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala index d61643811..e75e60657 100644 --- a/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala +++ b/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala @@ -307,7 +307,7 @@ object AkkaConnector_vDec2018 extends Connector with AkkaConnectorActorInit { //---------------- dynamic start -------------------please don't modify this line -// ---------- created on 2021-08-19T16:36:57Z +// ---------- created on 2021-08-24T13:21:14Z messageDocs += validateAndCheckIbanNumberDoc def validateAndCheckIbanNumberDoc = MessageDoc( @@ -4609,7 +4609,8 @@ object AkkaConnector_vDec2018 extends Connector with AkkaConnectorActorInit { productAttributeId=Some(productAttributeIdExample.value), name=nameExample.value, productAttributeType=com.openbankproject.commons.model.enums.ProductAttributeType.example, - value=valueExample.value) + value=valueExample.value, + isActive=Some(isActiveExample.value.toBoolean)) ), exampleInboundMessage = ( InBoundCreateOrUpdateProductAttribute(inboundAdapterCallContext=MessageDocsSwaggerDefinitions.inboundAdapterCallContext, @@ -4625,9 +4626,9 @@ object AkkaConnector_vDec2018 extends Connector with AkkaConnectorActorInit { adapterImplementation = Some(AdapterImplementation("- Core", 1)) ) - override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, productAttributeType: ProductAttributeType.Value, value: String, callContext: Option[CallContext]): OBPReturnType[Box[ProductAttribute]] = { + override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, productAttributeType: ProductAttributeType.Value, value: String, isActive: Option[Boolean], callContext: Option[CallContext]): OBPReturnType[Box[ProductAttribute]] = { import com.openbankproject.commons.dto.{InBoundCreateOrUpdateProductAttribute => InBound, OutBoundCreateOrUpdateProductAttribute => OutBound} - val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, bankId, productCode, productAttributeId, name, productAttributeType, value) + val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, bankId, productCode, productAttributeId, name, productAttributeType, value, isActive) val response: Future[Box[InBound]] = (southSideActor ? req).mapTo[InBound].recoverWith(recoverFunction).map(Box !! _) response.map(convertToTuple[ProductAttributeCommons](callContext)) } @@ -6204,6 +6205,6 @@ object AkkaConnector_vDec2018 extends Connector with AkkaConnectorActorInit { response.map(convertToTuple[Boolean](callContext)) } -// ---------- created on 2021-08-19T16:36:57Z -//---------------- dynamic end ---------------------please don't modify this line +// ---------- created on 2021-08-24T13:21:14Z +//---------------- dynamic end ---------------------please don't modify this line } diff --git a/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala b/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala index 2d9a23fe8..28a738c7d 100644 --- a/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala +++ b/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala @@ -95,7 +95,7 @@ trait RestConnector_vMar2019 extends Connector with KafkaHelper with MdcLoggable //---------------- dynamic start -------------------please don't modify this line -// ---------- created on 2021-08-19T16:37:18Z +// ---------- created on 2021-08-24T13:22:01Z messageDocs += getAdapterInfoDoc def getAdapterInfoDoc = MessageDoc( @@ -4796,7 +4796,8 @@ trait RestConnector_vMar2019 extends Connector with KafkaHelper with MdcLoggable productAttributeId=Some(productAttributeIdExample.value), name=nameExample.value, productAttributeType=com.openbankproject.commons.model.enums.ProductAttributeType.example, - value=valueExample.value) + value=valueExample.value, + isActive=Some(isActiveExample.value.toBoolean)) ), exampleInboundMessage = ( InBoundCreateOrUpdateProductAttribute(inboundAdapterCallContext=MessageDocsSwaggerDefinitions.inboundAdapterCallContext, @@ -4812,9 +4813,9 @@ trait RestConnector_vMar2019 extends Connector with KafkaHelper with MdcLoggable adapterImplementation = Some(AdapterImplementation("- Core", 1)) ) - override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, productAttributeType: ProductAttributeType.Value, value: String, callContext: Option[CallContext]): OBPReturnType[Box[ProductAttribute]] = { + override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, productAttributeType: ProductAttributeType.Value, value: String, isActive: Option[Boolean], callContext: Option[CallContext]): OBPReturnType[Box[ProductAttribute]] = { import com.openbankproject.commons.dto.{InBoundCreateOrUpdateProductAttribute => InBound, OutBoundCreateOrUpdateProductAttribute => OutBound} - val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, bankId, productCode, productAttributeId, name, productAttributeType, value) + val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, bankId, productCode, productAttributeId, name, productAttributeType, value, isActive) val response: Future[Box[InBound]] = sendRequest[InBound](getUrl(callContext, "createOrUpdateProductAttribute"), HttpMethods.POST, req, callContext) response.map(convertToTuple[ProductAttributeCommons](callContext)) } @@ -6391,8 +6392,8 @@ trait RestConnector_vMar2019 extends Connector with KafkaHelper with MdcLoggable response.map(convertToTuple[Boolean](callContext)) } -// ---------- created on 2021-08-19T16:37:18Z -//---------------- dynamic end ---------------------please don't modify this line +// ---------- created on 2021-08-24T13:22:01Z +//---------------- dynamic end ---------------------please don't modify this line private val availableOperation = DynamicEntityOperation.values.map(it => s""""$it"""").mkString("[", ", ", "]") diff --git a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala index cab49da0a..41d775ebd 100644 --- a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala +++ b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala @@ -76,7 +76,7 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { val connectorName = "stored_procedure_vDec2019" //---------------- dynamic start -------------------please don't modify this line -// ---------- created on 2021-08-19T16:41:22Z +// ---------- created on 2021-08-24T13:22:36Z messageDocs += getAdapterInfoDoc def getAdapterInfoDoc = MessageDoc( @@ -4777,7 +4777,8 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { productAttributeId=Some(productAttributeIdExample.value), name=nameExample.value, productAttributeType=com.openbankproject.commons.model.enums.ProductAttributeType.example, - value=valueExample.value) + value=valueExample.value, + isActive=Some(isActiveExample.value.toBoolean)) ), exampleInboundMessage = ( InBoundCreateOrUpdateProductAttribute(inboundAdapterCallContext=MessageDocsSwaggerDefinitions.inboundAdapterCallContext, @@ -4793,9 +4794,9 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { adapterImplementation = Some(AdapterImplementation("- Core", 1)) ) - override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, productAttributeType: ProductAttributeType.Value, value: String, callContext: Option[CallContext]): OBPReturnType[Box[ProductAttribute]] = { + override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, productAttributeType: ProductAttributeType.Value, value: String, isActive: Option[Boolean], callContext: Option[CallContext]): OBPReturnType[Box[ProductAttribute]] = { import com.openbankproject.commons.dto.{InBoundCreateOrUpdateProductAttribute => InBound, OutBoundCreateOrUpdateProductAttribute => OutBound} - val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, bankId, productCode, productAttributeId, name, productAttributeType, value) + val req = OutBound(callContext.map(_.toOutboundAdapterCallContext).orNull, bankId, productCode, productAttributeId, name, productAttributeType, value, isActive) val response: Future[Box[InBound]] = sendRequest[InBound]("obp_create_or_update_product_attribute", req, callContext) response.map(convertToTuple[ProductAttributeCommons](callContext)) } @@ -6372,8 +6373,8 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable { response.map(convertToTuple[Boolean](callContext)) } -// ---------- created on 2021-08-19T16:41:22Z -//---------------- dynamic end ---------------------please don't modify this line +// ---------- created on 2021-08-24T13:22:36Z +//---------------- dynamic end ---------------------please don't modify this line private val availableOperation = DynamicEntityOperation.values.map(it => s""""$it"""").mkString("[", ", ", "]") diff --git a/obp-api/src/main/scala/code/productattribute/MappedProductAttributeProvider.scala b/obp-api/src/main/scala/code/productattribute/MappedProductAttributeProvider.scala index bd4cb384b..8017b1932 100644 --- a/obp-api/src/main/scala/code/productattribute/MappedProductAttributeProvider.scala +++ b/obp-api/src/main/scala/code/productattribute/MappedProductAttributeProvider.scala @@ -8,7 +8,6 @@ import com.openbankproject.commons.model.{BankId, ProductAttribute, ProductCode} import net.liftweb.common.{Box, Empty, Full} import net.liftweb.mapper.{BaseMappedField, MappedBoolean, _} import net.liftweb.util.Helpers.tryo -import com.openbankproject.commons.ExecutionContext.Implicits.global import scala.concurrent.Future @@ -32,7 +31,8 @@ object MappedProductAttributeProvider extends ProductAttributeProvider { productAttributeId: Option[String], name: String, attributType: ProductAttributeType.Value, - value: String): Future[Box[ProductAttribute]] = { + value: String, + isActive: Option[Boolean]): Future[Box[ProductAttribute]] = { productAttributeId match { case Some(id) => Future { MappedProductAttribute.find(By(MappedProductAttribute.mProductAttributeId, id)) match { @@ -42,6 +42,7 @@ object MappedProductAttributeProvider extends ProductAttributeProvider { .mName(name) .mType(attributType.toString) .mValue(value) + .IsActive(isActive.getOrElse(true)) .saveMe() } case _ => Empty @@ -55,6 +56,7 @@ object MappedProductAttributeProvider extends ProductAttributeProvider { .mName(name) .mType(attributType.toString()) .mValue(value) + .IsActive(isActive.getOrElse(true)) .saveMe() } } diff --git a/obp-api/src/main/scala/code/productattribute/ProductAttribute.scala b/obp-api/src/main/scala/code/productattribute/ProductAttribute.scala index cfdc6c9c9..15286ed11 100644 --- a/obp-api/src/main/scala/code/productattribute/ProductAttribute.scala +++ b/obp-api/src/main/scala/code/productattribute/ProductAttribute.scala @@ -47,7 +47,8 @@ trait ProductAttributeProvider { productAttributeId: Option[String], name: String, attributType: ProductAttributeType.Value, - value: String): Future[Box[ProductAttribute]] + value: String, + isActive: Option[Boolean]): Future[Box[ProductAttribute]] def deleteProductAttribute(productAttributeId: String): Future[Box[Boolean]] // End of Trait } @@ -62,7 +63,8 @@ class RemotedataProductAttributeCaseClasses { productAttributeId: Option[String], name: String, attributType: ProductAttributeType.Value, - value: String) + value: String, + isActive: Option[Boolean]) case class deleteProductAttribute(productAttributeId: String) } diff --git a/obp-api/src/main/scala/code/remotedata/RemotedataProductAttribute.scala b/obp-api/src/main/scala/code/remotedata/RemotedataProductAttribute.scala index 99ffc868c..f9f46cd23 100644 --- a/obp-api/src/main/scala/code/remotedata/RemotedataProductAttribute.scala +++ b/obp-api/src/main/scala/code/remotedata/RemotedataProductAttribute.scala @@ -19,7 +19,7 @@ object RemotedataProductAttribute extends ObpActorInit with ProductAttributeProv override def getProductAttributeById(productAttributeId: String): Future[Box[ProductAttribute]] = (actor ? cc.getProductAttributeById(productAttributeId)).mapTo[Box[ProductAttribute]] - override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, attributType: ProductAttributeType.Value, value: String): Future[Box[ProductAttribute]] = (actor ? cc.createOrUpdateProductAttribute(bankId, productCode, productAttributeId , name , attributType , value )).mapTo[Box[ProductAttribute]] + override def createOrUpdateProductAttribute(bankId: BankId, productCode: ProductCode, productAttributeId: Option[String], name: String, attributType: ProductAttributeType.Value, value: String, isActive: Option[Boolean]): Future[Box[ProductAttribute]] = (actor ? cc.createOrUpdateProductAttribute(bankId, productCode, productAttributeId , name , attributType , value, isActive)).mapTo[Box[ProductAttribute]] override def deleteProductAttribute(productAttributeId: String): Future[Box[Boolean]] = (actor ? cc.deleteProductAttribute(productAttributeId)).mapTo[Box[Boolean]] } diff --git a/obp-api/src/main/scala/code/remotedata/RemotedataProductAttributeActor.scala b/obp-api/src/main/scala/code/remotedata/RemotedataProductAttributeActor.scala index 5a3d680f4..753cbb693 100644 --- a/obp-api/src/main/scala/code/remotedata/RemotedataProductAttributeActor.scala +++ b/obp-api/src/main/scala/code/remotedata/RemotedataProductAttributeActor.scala @@ -31,14 +31,16 @@ class RemotedataProductAttributeActor extends Actor with ObpActorHelper with Mdc productAttributeId: Option[String], name: String, attributType: ProductAttributeType.Value, - value: String) => - logger.debug(s"createOrUpdateProductAttribute(${bankId}, ${productCode}, ${productAttributeId}, ${name}, ${attributType}, ${value})") + value: String, + isActive: Option[Boolean]) => + logger.debug(s"createOrUpdateProductAttribute(${bankId}, ${productCode}, ${productAttributeId}, ${name}, ${attributType}, ${value}, ${isActive})") mapper.createOrUpdateProductAttribute(bankId, productCode, productAttributeId, name, attributType, - value) pipeTo sender + value, + isActive) pipeTo sender case cc.deleteProductAttribute(productAttributeId: String) => logger.debug(s"deleteProductAttribute(${productAttributeId})") diff --git a/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_frozen_meta_data b/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_frozen_meta_data index 4e0e332ecef5882e76b19e0f6e7ddd6e3c0c4739..e31fe3c316cf8ae1ca06984e853bbee82cf7338f 100644 GIT binary patch delta 30 ocmV+(0O9}K>jwGj27t5yUZ|6X@;R56r~zD)&gUJs^QZyo3;`|>7XSbN delta 39 xcmV+?0NDTe>jvEG27t5yUZ|G|hXE6lu;&$%uJRF=m#6_;lR)Txw~na+YYc=M5`zE$ diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala b/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala index 6f13aa3ce..2a6d29180 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala @@ -378,7 +378,8 @@ case class OutBoundCreateOrUpdateProductAttribute(outboundAdapterCallContext: Ou productAttributeId: Option[String], name: String, productAttributeType: enums.ProductAttributeType.Value, - value: String) extends TopicTrait + value: String, + isActive: Option[Boolean]) extends TopicTrait case class InBoundCreateOrUpdateProductAttribute(inboundAdapterCallContext: InboundAdapterCallContext, status: Status, data: ProductAttributeCommons) extends InBoundTrait[ProductAttributeCommons]