diff --git a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala
index 6fc155673..c6ab440ad 100644
--- a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala
+++ b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala
@@ -29,7 +29,6 @@ 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
@@ -39,7 +38,7 @@ import code.accountattribute.MappedAccountAttribute
import code.accountholders.MapperAccountHolders
import code.actorsystem.ObpActorSystem
import code.api.Constant._
-import code.api.ResourceDocs1_4_0.ResourceDocs300.{ResourceDocs310, ResourceDocs400, ResourceDocs500}
+import code.api.ResourceDocs1_4_0.ResourceDocs300.{ResourceDocs310, ResourceDocs400, ResourceDocs500, ResourceDocs510}
import code.api.ResourceDocs1_4_0._
import code.api._
import code.api.attributedefinition.AttributeDefinition
@@ -133,6 +132,7 @@ import code.webuiprops.WebUiProps
import com.openbankproject.commons.model.{ErrorMessage, User}
import com.openbankproject.commons.util.Functions.Implicits._
import com.openbankproject.commons.util.{ApiVersion, Functions}
+
import javax.mail.{Authenticator, PasswordAuthentication}
import javax.mail.internet.MimeMessage
import net.liftweb.common._
@@ -410,6 +410,7 @@ class Boot extends MdcLoggable {
enableVersionIfAllowed(ApiVersion.v3_1_0)
enableVersionIfAllowed(ApiVersion.v4_0_0)
enableVersionIfAllowed(ApiVersion.v5_0_0)
+ enableVersionIfAllowed(ApiVersion.v5_1_0)
enableVersionIfAllowed(ApiVersion.b1)
enableVersionIfAllowed(ApiVersion.`dynamic-endpoint`)
enableVersionIfAllowed(ApiVersion.`dynamic-entity`)
@@ -468,6 +469,7 @@ class Boot extends MdcLoggable {
LiftRules.statelessDispatch.append(ResourceDocs310)
LiftRules.statelessDispatch.append(ResourceDocs400)
LiftRules.statelessDispatch.append(ResourceDocs500)
+ LiftRules.statelessDispatch.append(ResourceDocs510)
////////////////////////////////////////////////////
diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ApiCollector.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ApiCollector.scala
index 5f848f56f..d8fea1182 100644
--- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ApiCollector.scala
+++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ApiCollector.scala
@@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
import scala.collection.mutable.ArrayBuffer
@@ -48,7 +48,7 @@ This file defines which endpoints from all the versions are available in v1
object ApiCollector extends OBPRestHelper with MdcLoggable with ScannedApis {
//please modify these three parameter if it is not correct.
override val apiVersion = ScannedApiVersion("cds-au", "AU", "v1.0.0")
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints =
APIMethods_AccountsApi.endpoints ++
diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/ApiCollector.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/ApiCollector.scala
index feea6a94a..ff5422cff 100644
--- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/ApiCollector.scala
+++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/ApiCollector.scala
@@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.{ScannedApis}
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
import scala.collection.mutable.ArrayBuffer
@@ -46,7 +46,7 @@ This file defines which endpoints from all the versions are available in v1
*/
object ApiCollector extends OBPRestHelper with MdcLoggable with ScannedApis {
override val apiVersion = ScannedApiVersion("BAHRAIN-OBF", "BAHRAIN-OBF", "v1.0.0")
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints =
APIMethods_DomesticFutureDatedPaymentConsentsApi.endpoints ++
diff --git a/obp-api/src/main/scala/code/api/MxOF/CNBV9_1_0_0.scala b/obp-api/src/main/scala/code/api/MxOF/CNBV9_1_0_0.scala
index 396f89bfc..814734359 100644
--- a/obp-api/src/main/scala/code/api/MxOF/CNBV9_1_0_0.scala
+++ b/obp-api/src/main/scala/code/api/MxOF/CNBV9_1_0_0.scala
@@ -4,7 +4,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import scala.collection.mutable.ArrayBuffer
@@ -14,7 +14,7 @@ This file defines which endpoints from all the versions are available in v1
object CNBV9_1_0_0 extends OBPRestHelper with MdcLoggable with ScannedApis {
// CNBV9
override val apiVersion = ApiVersion.cnbv9
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints = APIMethods_AtmsApi.endpoints
override val allResourceDocs: ArrayBuffer[ResourceDoc] = APIMethods_AtmsApi.resourceDocs
diff --git a/obp-api/src/main/scala/code/api/MxOF/OBP_MXOF_1_0_0.scala b/obp-api/src/main/scala/code/api/MxOF/OBP_MXOF_1_0_0.scala
index b6d9bdd30..9e05a42cf 100644
--- a/obp-api/src/main/scala/code/api/MxOF/OBP_MXOF_1_0_0.scala
+++ b/obp-api/src/main/scala/code/api/MxOF/OBP_MXOF_1_0_0.scala
@@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import scala.collection.mutable.ArrayBuffer
@@ -46,7 +46,7 @@ This file defines which endpoints from all the versions are available in v1
object OBP_MXOF_1_0_0 extends OBPRestHelper with MdcLoggable with ScannedApis {
// mx-open-finance
override val apiVersion = ApiVersion.mxofV100
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints = APIMethods_AtmsApi.endpoints
override val allResourceDocs: ArrayBuffer[ResourceDoc] = APIMethods_AtmsApi.resourceDocs.map(
diff --git a/obp-api/src/main/scala/code/api/OBPRestHelper.scala b/obp-api/src/main/scala/code/api/OBPRestHelper.scala
index 91b22cbe9..7f6ba17d1 100644
--- a/obp-api/src/main/scala/code/api/OBPRestHelper.scala
+++ b/obp-api/src/main/scala/code/api/OBPRestHelper.scala
@@ -38,6 +38,7 @@ import code.api.v3_0_0.APIMethods300
import code.api.v3_1_0.APIMethods310
import code.api.v4_0_0.{APIMethods400, OBPAPI4_0_0}
import code.api.v5_0_0.OBPAPI5_0_0
+import code.api.v5_1_0.OBPAPI5_1_0
import code.loginattempts.LoginAttempt
import code.model.dataAccess.AuthUser
import code.util.Helper.MdcLoggable
@@ -666,7 +667,7 @@ trait OBPRestHelper extends RestHelper with MdcLoggable {
autoValidateAll: Boolean = false): Unit = {
def isAutoValidate(doc: ResourceDoc): Boolean = { //note: only support v5.0.0 and v4.0.0 at the moment.
- doc.isValidateEnabled || (autoValidateAll && !doc.isValidateDisabled && List(OBPAPI5_0_0.version,OBPAPI4_0_0.version).contains(doc.implementedInApiVersion))
+ doc.isValidateEnabled || (autoValidateAll && !doc.isValidateDisabled && List(OBPAPI5_1_0.version,OBPAPI5_0_0.version,OBPAPI4_0_0.version).contains(doc.implementedInApiVersion))
}
for(route <- routes) {
diff --git a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/OBP_PAPI_2_1_1_1.scala b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/OBP_PAPI_2_1_1_1.scala
index 400cba1c5..21552e30e 100644
--- a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/OBP_PAPI_2_1_1_1.scala
+++ b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/OBP_PAPI_2_1_1_1.scala
@@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
import scala.collection.mutable.ArrayBuffer
@@ -48,7 +48,7 @@ This file defines which endpoints from all the versions are available in v1
object OBP_PAPI_2_1_1_1 extends OBPRestHelper with MdcLoggable with ScannedApis {
//please modify these three parameter if it is not correct.
override val apiVersion = ScannedApiVersion("polish-api", "PAPI", "v2.1.1.1")
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints =
APIMethods_AISApi.endpoints ++
diff --git a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocs140.scala b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocs140.scala
index cd432c68e..28b96d051 100644
--- a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocs140.scala
+++ b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocs140.scala
@@ -1,13 +1,13 @@
package code.api.ResourceDocs1_4_0
import code.api.OBPRestHelper
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.util.Helper.MdcLoggable
object ResourceDocs140 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
val version = ApiVersion.v1_4_0 // "1.4.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObp,
ImplementationsResourceDocs.getBankLevelDynamicResourceDocsObp,
@@ -23,7 +23,7 @@ object ResourceDocs140 extends OBPRestHelper with ResourceDocsAPIMethods with Md
// Hack to provide Resource Docs / Swagger on endpoints other than 1.4.0 where it is defined.
object ResourceDocs200 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
val version = ApiVersion.v2_0_0 // "2.0.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObp,
ImplementationsResourceDocs.getResourceDocsSwagger,
@@ -39,7 +39,7 @@ object ResourceDocs200 extends OBPRestHelper with ResourceDocsAPIMethods with Md
// Hack to provide Resource Docs / Swagger on endpoints other than 1.4.0 where it is defined.
object ResourceDocs210 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
val version: ApiVersion = ApiVersion.v2_1_0 // "2.1.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObp,
ImplementationsResourceDocs.getResourceDocsSwagger,
@@ -54,7 +54,7 @@ object ResourceDocs210 extends OBPRestHelper with ResourceDocsAPIMethods with Md
// Hack to provide Resource Docs / Swagger on endpoints other than 1.4.0 where it is defined.
object ResourceDocs220 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
val version: ApiVersion = ApiVersion.v2_2_0 // "2.2.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObp,
ImplementationsResourceDocs.getResourceDocsSwagger,
@@ -69,7 +69,7 @@ object ResourceDocs220 extends OBPRestHelper with ResourceDocsAPIMethods with Md
// Hack to provide Resource Docs / Swagger on endpoints other than 1.4.0 where it is defined.
object ResourceDocs300 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
val version : ApiVersion = ApiVersion.v3_0_0 // = "3.0.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObp,
ImplementationsResourceDocs.getResourceDocsSwagger,
@@ -83,7 +83,7 @@ object ResourceDocs300 extends OBPRestHelper with ResourceDocsAPIMethods with Md
// Hack to provide Resource Docs / Swagger on endpoints other than 1.4.0 where it is defined.
object ResourceDocs310 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
val version: ApiVersion = ApiVersion.v3_1_0 // = "3.0.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObp,
ImplementationsResourceDocs.getResourceDocsSwagger,
@@ -99,7 +99,7 @@ object ResourceDocs300 extends OBPRestHelper with ResourceDocsAPIMethods with Md
// Hack to provide Resource Docs / Swagger on endpoints other than 1.4.0 where it is defined.
object ResourceDocs400 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
val version: ApiVersion = ApiVersion.v4_0_0 // = "4.0.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "BLEEDING-EDGE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObpV400,
ImplementationsResourceDocs.getResourceDocsSwagger,
@@ -114,8 +114,24 @@ object ResourceDocs300 extends OBPRestHelper with ResourceDocsAPIMethods with Md
}
// Hack to provide Resource Docs / Swagger on endpoints other than 1.4.0 where it is defined.
object ResourceDocs500 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
- val version: ApiVersion = ApiVersion.v5_0_0 // = "4.0.0" // We match other api versions so API explorer can easily use the path.
- val versionStatus = "BLEEDING-EDGE"
+ val version: ApiVersion = ApiVersion.v5_0_0
+ val versionStatus = ApiVersionStatus.STABLE.toString
+ val routes = List(
+ ImplementationsResourceDocs.getResourceDocsObpV400,
+ ImplementationsResourceDocs.getResourceDocsSwagger,
+ ImplementationsResourceDocs.getBankLevelDynamicResourceDocsObp,
+// ImplementationsResourceDocs.getStaticResourceDocsObp
+ )
+ routes.foreach(route => {
+ oauthServe(apiPrefix {
+ route
+ })
+ })
+ }
+
+ object ResourceDocs510 extends OBPRestHelper with ResourceDocsAPIMethods with MdcLoggable {
+ val version: ApiVersion = ApiVersion.v5_1_0
+ val versionStatus = ApiVersionStatus.`BLEEDING-EDGE`.toString
val routes = List(
ImplementationsResourceDocs.getResourceDocsObpV400,
ImplementationsResourceDocs.getResourceDocsSwagger,
diff --git a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala
index 0b19efea4..70eb34b50 100644
--- a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala
+++ b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala
@@ -38,6 +38,7 @@ import net.liftweb.util.Props
import java.util.concurrent.ConcurrentHashMap
import code.api.util.NewStyle.HttpCode
import code.api.v5_0_0.OBPAPI5_0_0
+import code.api.v5_1_0.OBPAPI5_1_0
import code.util.Helper
import scala.collection.immutable.{List, Nil}
@@ -120,6 +121,7 @@ trait ResourceDocsAPIMethods extends MdcLoggable with APIMethods220 with APIMeth
val resourceDocs = requestedApiVersion match {
case ApiVersion.`b1` => OBP_APIBuilder.allResourceDocs
+ case ApiVersion.v5_1_0 => OBPAPI5_1_0.allResourceDocs
case ApiVersion.v5_0_0 => OBPAPI5_0_0.allResourceDocs
case ApiVersion.v4_0_0 => OBPAPI4_0_0.allResourceDocs
case ApiVersion.v3_1_0 => OBPAPI3_1_0.allResourceDocs
@@ -138,6 +140,7 @@ trait ResourceDocsAPIMethods extends MdcLoggable with APIMethods220 with APIMeth
val versionRoutes = requestedApiVersion match {
case ApiVersion.`b1` => OBP_APIBuilder.routes
+ case ApiVersion.v5_1_0 => OBPAPI5_1_0.routes
case ApiVersion.v5_0_0 => OBPAPI5_0_0.routes
case ApiVersion.v4_0_0 => OBPAPI4_0_0.routes
case ApiVersion.v3_1_0 => OBPAPI3_1_0.routes
diff --git a/obp-api/src/main/scala/code/api/STET/v1_4/OBP_STET_1_4.scala b/obp-api/src/main/scala/code/api/STET/v1_4/OBP_STET_1_4.scala
index 30070e9f6..68321aef6 100644
--- a/obp-api/src/main/scala/code/api/STET/v1_4/OBP_STET_1_4.scala
+++ b/obp-api/src/main/scala/code/api/STET/v1_4/OBP_STET_1_4.scala
@@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
import scala.collection.mutable.ArrayBuffer
@@ -48,7 +48,7 @@ This file defines which endpoints from all the versions are available in v1
object OBP_STET_1_4 extends OBPRestHelper with MdcLoggable with ScannedApis {
//please modify these three parameter if it is not correct.
override val apiVersion = ScannedApiVersion("stet", "STET", "v1.4")
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints =
APIMethods_AISPApi.endpoints ++
diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/OBP_UKOpenBanking_200.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/OBP_UKOpenBanking_200.scala
index d2dfa489c..0a38aca4a 100644
--- a/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/OBP_UKOpenBanking_200.scala
+++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/OBP_UKOpenBanking_200.scala
@@ -33,7 +33,7 @@ import code.util.Helper.MdcLoggable
import scala.collection.immutable.Nil
import code.api.UKOpenBanking.v2_0_0.APIMethods_UKOpenBanking_200._
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
/*
@@ -44,7 +44,7 @@ This file defines which endpoints from all the versions are available in v1
object OBP_UKOpenBanking_200 extends OBPRestHelper with MdcLoggable with ScannedApis{
override val apiVersion = ScannedApiVersion("open-banking", "UK", "v2.0")
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
val allEndpoints =
getAccountList ::
diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OBP_UKOpenBanking_310.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OBP_UKOpenBanking_310.scala
index 88315ddd2..b8e9289dd 100644
--- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OBP_UKOpenBanking_310.scala
+++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OBP_UKOpenBanking_310.scala
@@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
import scala.collection.mutable.ArrayBuffer
@@ -48,7 +48,7 @@ This file defines which endpoints from all the versions are available in v1
object OBP_UKOpenBanking_310 extends OBPRestHelper with MdcLoggable with ScannedApis {
//please modify these three parameter if it is not correct.
override val apiVersion = ScannedApiVersion("open-banking", "UK", "v3.1")
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
private[this] val endpoints =
APIMethods_AccountAccessApi.endpoints ++
diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1/OBP_BERLIN_GROUP_1.scala b/obp-api/src/main/scala/code/api/berlin/group/v1/OBP_BERLIN_GROUP_1.scala
index cd92837c2..34936c61f 100644
--- a/obp-api/src/main/scala/code/api/berlin/group/v1/OBP_BERLIN_GROUP_1.scala
+++ b/obp-api/src/main/scala/code/api/berlin/group/v1/OBP_BERLIN_GROUP_1.scala
@@ -28,7 +28,7 @@ package code.api.berlin.group.v1
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
import code.api.berlin.group.v1.APIMethods_BERLIN_GROUP_1._
@@ -45,7 +45,7 @@ This file defines which endpoints from all the versions are available in v1
object OBP_BERLIN_GROUP_1 extends OBPRestHelper with MdcLoggable with ScannedApis{
override val apiVersion = ScannedApiVersion("berlin-group", "BG", "v1")
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
val allEndpoints =
getAccountList ::
diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3.scala
index f84c79014..5a488877f 100644
--- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3.scala
+++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3.scala
@@ -40,7 +40,7 @@ import code.api.builder.SigningBasketsApi.APIMethods_SigningBasketsApi
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion}
+import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion,ApiVersionStatus}
import scala.collection.mutable.ArrayBuffer
@@ -53,7 +53,7 @@ This file defines which endpoints from all the versions are available in v1
object OBP_BERLIN_GROUP_1_3 extends OBPRestHelper with MdcLoggable with ScannedApis {
override val apiVersion = ApiVersion.berlinGroupV13
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
val endpoints =
APIMethods_AccountInformationServiceAISApi.endpoints ++
diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3_Alias.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3_Alias.scala
index 52847c7f0..279925c98 100644
--- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3_Alias.scala
+++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/OBP_BERLIN_GROUP_1_3_Alias.scala
@@ -35,7 +35,7 @@ import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, berlinGroupV13AliasPath, getAllowedEndpoints}
import code.api.util.ScannedApis
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ScannedApiVersion
+import com.openbankproject.commons.util.{ApiVersionStatus, ScannedApiVersion}
import scala.collection.mutable.ArrayBuffer
/*
@@ -43,7 +43,7 @@ This file defines which endpoints from all the versions are available in v1
*/
object OBP_BERLIN_GROUP_1_3_Alias extends OBPRestHelper with MdcLoggable with ScannedApis {
override val apiVersion = ScannedApiVersion(berlinGroupV13AliasPath.head, berlinGroupV13AliasPath.head, berlinGroupV13AliasPath.last)
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
override val allResourceDocs: ArrayBuffer[ResourceDoc] = if(berlinGroupV13AliasPath.nonEmpty){
OBP_BERLIN_GROUP_1_3.allResourceDocs.map(resourceDoc => resourceDoc.copy(
diff --git a/obp-api/src/main/scala/code/api/builder/OBP_APIBuilder.scala b/obp-api/src/main/scala/code/api/builder/OBP_APIBuilder.scala
index c0f655cc8..f6a009509 100644
--- a/obp-api/src/main/scala/code/api/builder/OBP_APIBuilder.scala
+++ b/obp-api/src/main/scala/code/api/builder/OBP_APIBuilder.scala
@@ -2,13 +2,13 @@ package code.api.builder
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.util.Helper.MdcLoggable
object OBP_APIBuilder extends OBPRestHelper with APIMethods_APIBuilder with MdcLoggable {
val version = ApiVersion.b1
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
val endpoints = ImplementationsBuilderAPI.endpointsOfBuilderAPI
diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/OBPAPIDynamicEndpoint.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/OBPAPIDynamicEndpoint.scala
index 111b7e511..eddbfc9d7 100644
--- a/obp-api/src/main/scala/code/api/dynamic/endpoint/OBPAPIDynamicEndpoint.scala
+++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/OBPAPIDynamicEndpoint.scala
@@ -33,7 +33,7 @@ import code.api.util.APIUtil.OBPEndpoint
import code.api.util.{APIUtil, VersionedOBPApis}
import code.api.v5_0_0.OBPAPI5_0_0.{allResourceDocs, apiPrefix, registerRoutes, routes}
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import net.liftweb.common.{Box, Full}
import net.liftweb.http.{LiftResponse, PlainTextResponse}
import org.apache.http.HttpStatus
@@ -45,7 +45,7 @@ object OBPAPIDynamicEndpoint extends OBPRestHelper with MdcLoggable with Version
val version : ApiVersion = ApiVersion.`dynamic-endpoint`
- val versionStatus = "BLEEDING-EDGE" // TODO this should be a property of ApiVersion.
+ val versionStatus = ApiVersionStatus.`BLEEDING-EDGE`.toString
// if old version ResourceDoc objects have the same name endpoint with new version, omit old version ResourceDoc.
def allResourceDocs = collectResourceDocs(ImplementationsDynamicEndpoint.resourceDocs)
diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/OBPAPIDynamicEntity.scala b/obp-api/src/main/scala/code/api/dynamic/entity/OBPAPIDynamicEntity.scala
index 54afa2c69..552d2aab3 100644
--- a/obp-api/src/main/scala/code/api/dynamic/entity/OBPAPIDynamicEntity.scala
+++ b/obp-api/src/main/scala/code/api/dynamic/entity/OBPAPIDynamicEntity.scala
@@ -33,7 +33,7 @@ import code.api.util.APIUtil.OBPEndpoint
import code.api.util.{APIUtil, VersionedOBPApis}
import code.api.v5_0_0.OBPAPI5_0_0.{allResourceDocs, apiPrefix, registerRoutes, routes}
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import net.liftweb.common.{Box, Full}
import net.liftweb.http.{LiftResponse, PlainTextResponse}
import org.apache.http.HttpStatus
@@ -45,7 +45,7 @@ object OBPAPIDynamicEntity extends OBPRestHelper with MdcLoggable with Versioned
val version : ApiVersion = ApiVersion.`dynamic-entity`
- val versionStatus = "BLEEDING-EDGE" // TODO this should be a property of ApiVersion.
+ val versionStatus = ApiVersionStatus.`BLEEDING-EDGE`.toString
// if old version ResourceDoc objects have the same name endpoint with new version, omit old version ResourceDoc.
def allResourceDocs = collectResourceDocs(ImplementationsDynamicEntity.resourceDocs)
diff --git a/obp-api/src/main/scala/code/api/openidconnect.scala b/obp-api/src/main/scala/code/api/openidconnect.scala
index 0d24672e7..09aa4534d 100644
--- a/obp-api/src/main/scala/code/api/openidconnect.scala
+++ b/obp-api/src/main/scala/code/api/openidconnect.scala
@@ -39,7 +39,7 @@ import code.token.{OpenIDConnectToken, TokensOpenIDConnect}
import code.users.Users
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.User
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import javax.net.ssl.HttpsURLConnection
import net.liftweb.common._
import net.liftweb.http._
@@ -86,7 +86,7 @@ object OpenIdConnectConfig {
object OpenIdConnect extends OBPRestHelper with MdcLoggable {
val version = ApiVersion.openIdConnect1 // "1.0" // TODO: Should this be the lowest version supported or when introduced?
- val versionStatus = "DRAFT"
+ val versionStatus = ApiVersionStatus.DRAFT.toString
val openIdConnect = "OpenID Connect"
diff --git a/obp-api/src/main/scala/code/api/util/APIUtil.scala b/obp-api/src/main/scala/code/api/util/APIUtil.scala
index 27ebba6f2..d7cbacae0 100644
--- a/obp-api/src/main/scala/code/api/util/APIUtil.scala
+++ b/obp-api/src/main/scala/code/api/util/APIUtil.scala
@@ -2489,6 +2489,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{
case ApiVersion.v3_1_0 => LiftRules.statelessDispatch.append(v3_1_0.OBPAPI3_1_0)
case ApiVersion.v4_0_0 => LiftRules.statelessDispatch.append(v4_0_0.OBPAPI4_0_0)
case ApiVersion.v5_0_0 => LiftRules.statelessDispatch.append(v5_0_0.OBPAPI5_0_0)
+ case ApiVersion.v5_1_0 => LiftRules.statelessDispatch.append(v5_1_0.OBPAPI5_1_0)
case ApiVersion.`dynamic-endpoint` => LiftRules.statelessDispatch.append(OBPAPIDynamicEndpoint)
case ApiVersion.`dynamic-entity` => LiftRules.statelessDispatch.append(OBPAPIDynamicEntity)
case ApiVersion.`b1` => LiftRules.statelessDispatch.append(OBP_APIBuilder)
diff --git a/obp-api/src/main/scala/code/api/util/ApiVersionUtils.scala b/obp-api/src/main/scala/code/api/util/ApiVersionUtils.scala
index 428f78606..873678eed 100644
--- a/obp-api/src/main/scala/code/api/util/ApiVersionUtils.scala
+++ b/obp-api/src/main/scala/code/api/util/ApiVersionUtils.scala
@@ -17,6 +17,7 @@ object ApiVersionUtils {
v3_1_0 ::
v4_0_0 ::
v5_0_0 ::
+ v5_1_0 ::
`dynamic-endpoint` ::
`dynamic-entity` ::
b1::
@@ -38,6 +39,7 @@ object ApiVersionUtils {
case v3_1_0.fullyQualifiedVersion | v3_1_0.apiShortVersion => v3_1_0
case v4_0_0.fullyQualifiedVersion | v4_0_0.apiShortVersion => v4_0_0
case v5_0_0.fullyQualifiedVersion | v5_0_0.apiShortVersion => v5_0_0
+ case v5_1_0.fullyQualifiedVersion | v5_1_0.apiShortVersion => v5_1_0
case `dynamic-endpoint`.fullyQualifiedVersion | `dynamic-endpoint`.apiShortVersion => `dynamic-endpoint`
case `dynamic-entity`.fullyQualifiedVersion | `dynamic-entity`.apiShortVersion => `dynamic-entity`
case b1.fullyQualifiedVersion | b1.apiShortVersion => b1
diff --git a/obp-api/src/main/scala/code/api/util/migration/Migration.scala b/obp-api/src/main/scala/code/api/util/migration/Migration.scala
index 0b3add21b..a38a8a1f8 100644
--- a/obp-api/src/main/scala/code/api/util/migration/Migration.scala
+++ b/obp-api/src/main/scala/code/api/util/migration/Migration.scala
@@ -68,7 +68,7 @@ object Migration extends MdcLoggable {
generateAndPopulateMissingConsumersUUIDs(startedBeforeSchemifier)
populateTableRateLimiting()
updateTableViewDefinition()
- bankAccountHoldersAndOwnerViewAccessInfo()
+ bankAccountHoldersAndOwnerViewAccessInfo(startedBeforeSchemifier)
alterTableMappedConsent()
alterColumnChallengeAtTableMappedConsent()
alterTableOpenIDConnectToken()
@@ -183,10 +183,15 @@ object Migration extends MdcLoggable {
}
}
- private def bankAccountHoldersAndOwnerViewAccessInfo(): Boolean = {
- val name = nameOf(bankAccountHoldersAndOwnerViewAccessInfo)
- runOnce(name) {
- BankAccountHoldersAndOwnerViewAccess.saveInfoBankAccountHoldersAndOwnerViewAccessInfo(name)
+ private def bankAccountHoldersAndOwnerViewAccessInfo(startedBeforeSchemifier: Boolean): Boolean = {
+ if(startedBeforeSchemifier == true) {
+ logger.warn(s"Migration.database.bankAccountHoldersAndOwnerViewAccessInfo(true) cannot be run before Schemifier.")
+ true
+ } else {
+ val name = nameOf(bankAccountHoldersAndOwnerViewAccessInfo(startedBeforeSchemifier))
+ runOnce(name) {
+ BankAccountHoldersAndOwnerViewAccess.saveInfoBankAccountHoldersAndOwnerViewAccessInfo(name)
+ }
}
}
private def alterTableMappedConsent(): Boolean = {
diff --git a/obp-api/src/main/scala/code/api/v1_2_1/OBPAPI1.2.1.scala b/obp-api/src/main/scala/code/api/v1_2_1/OBPAPI1.2.1.scala
index 61da5e2ee..5282cf195 100644
--- a/obp-api/src/main/scala/code/api/v1_2_1/OBPAPI1.2.1.scala
+++ b/obp-api/src/main/scala/code/api/v1_2_1/OBPAPI1.2.1.scala
@@ -28,7 +28,7 @@ package code.api.v1_2_1
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.api.util.VersionedOBPApis
import code.util.Helper.MdcLoggable
@@ -38,7 +38,7 @@ object OBPAPI1_2_1 extends OBPRestHelper with APIMethods121 with MdcLoggable wit
val version : ApiVersion = ApiVersion.v1_2_1 // "1.2.1"
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val endpointsOf1_2_1 = List(
Implementations1_2_1.root(version, versionStatus),
diff --git a/obp-api/src/main/scala/code/api/v1_3_0/OBPAPI1_3_0.scala b/obp-api/src/main/scala/code/api/v1_3_0/OBPAPI1_3_0.scala
index 8e79af9a5..dddc4450c 100644
--- a/obp-api/src/main/scala/code/api/v1_3_0/OBPAPI1_3_0.scala
+++ b/obp-api/src/main/scala/code/api/v1_3_0/OBPAPI1_3_0.scala
@@ -2,7 +2,7 @@ package code.api.v1_3_0
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.api.util.VersionedOBPApis
import code.api.v1_2_1.APIMethods121
import code.util.Helper.MdcLoggable
@@ -15,7 +15,7 @@ import code.util.Helper.MdcLoggable
object OBPAPI1_3_0 extends OBPRestHelper with APIMethods130 with APIMethods121 with MdcLoggable with VersionedOBPApis{
val version : ApiVersion = ApiVersion.v1_3_0 // "1.3.0"
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
//TODO: check all these calls to see if they should really have the same behaviour as 1.2.1
diff --git a/obp-api/src/main/scala/code/api/v1_4_0/OBPAPI1_4_0.scala b/obp-api/src/main/scala/code/api/v1_4_0/OBPAPI1_4_0.scala
index a6cf7d27e..2442a7791 100644
--- a/obp-api/src/main/scala/code/api/v1_4_0/OBPAPI1_4_0.scala
+++ b/obp-api/src/main/scala/code/api/v1_4_0/OBPAPI1_4_0.scala
@@ -2,7 +2,7 @@ package code.api.v1_4_0
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.api.util.VersionedOBPApis
import code.util.Helper.MdcLoggable
@@ -10,7 +10,7 @@ import code.util.Helper.MdcLoggable
object OBPAPI1_4_0 extends OBPRestHelper with APIMethods140 with MdcLoggable with VersionedOBPApis{
val version : ApiVersion = ApiVersion.v1_4_0 //"1.4.0"
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
val endpointsOf1_2_1 = List(
Implementations1_2_1.root(version, versionStatus),
diff --git a/obp-api/src/main/scala/code/api/v2_0_0/OBPAPI2_0_0.scala b/obp-api/src/main/scala/code/api/v2_0_0/OBPAPI2_0_0.scala
index 5577684bc..07b068e0e 100644
--- a/obp-api/src/main/scala/code/api/v2_0_0/OBPAPI2_0_0.scala
+++ b/obp-api/src/main/scala/code/api/v2_0_0/OBPAPI2_0_0.scala
@@ -28,7 +28,7 @@ package code.api.v2_0_0
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.api.util.VersionedOBPApis
import code.api.v1_3_0.APIMethods130
import code.api.v1_4_0.APIMethods140
@@ -38,7 +38,7 @@ object OBPAPI2_0_0 extends OBPRestHelper with APIMethods130 with APIMethods140 w
val version : ApiVersion = ApiVersion.v2_0_0 // "2.0.0"
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
// Note: Since we pattern match on these routes, if two implementations match a given url the first will match
diff --git a/obp-api/src/main/scala/code/api/v2_1_0/OBPAPI2_1_0.scala b/obp-api/src/main/scala/code/api/v2_1_0/OBPAPI2_1_0.scala
index 68452255f..9c6ce8c32 100644
--- a/obp-api/src/main/scala/code/api/v2_1_0/OBPAPI2_1_0.scala
+++ b/obp-api/src/main/scala/code/api/v2_1_0/OBPAPI2_1_0.scala
@@ -33,7 +33,7 @@ import code.api.v1_3_0.APIMethods130
import code.api.v1_4_0.APIMethods140
import code.api.v2_0_0.APIMethods200
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import scala.collection.immutable.Nil
@@ -44,7 +44,7 @@ object OBPAPI2_1_0 extends OBPRestHelper with APIMethods130 with APIMethods140 w
val version : ApiVersion = ApiVersion.v2_1_0 //"2.1.0"
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
// Possible Endpoints 1.2.1
val endpointsOf1_2_1 = Implementations1_2_1.addCommentForViewOnTransaction ::
diff --git a/obp-api/src/main/scala/code/api/v2_2_0/OBPAPI2_2_0.scala b/obp-api/src/main/scala/code/api/v2_2_0/OBPAPI2_2_0.scala
index cff08269e..02a3ed636 100644
--- a/obp-api/src/main/scala/code/api/v2_2_0/OBPAPI2_2_0.scala
+++ b/obp-api/src/main/scala/code/api/v2_2_0/OBPAPI2_2_0.scala
@@ -9,14 +9,14 @@ import code.api.v1_4_0.APIMethods140
import code.api.v2_0_0.APIMethods200
import code.api.v2_1_0.APIMethods210
import code.util.Helper.MdcLoggable
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import scala.collection.immutable.Nil
object OBPAPI2_2_0 extends OBPRestHelper with APIMethods130 with APIMethods140 with APIMethods200 with APIMethods210 with APIMethods220 with MdcLoggable with VersionedOBPApis{
val version : ApiVersion = ApiVersion.v2_2_0 // "2.2.0"
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
// Possible Endpoints from 1.2.1
val endpointsOf1_2_1 = Implementations1_2_1.addCommentForViewOnTransaction ::
diff --git a/obp-api/src/main/scala/code/api/v3_0_0/OBPAPI3_0_0.scala b/obp-api/src/main/scala/code/api/v3_0_0/OBPAPI3_0_0.scala
index 0b653aef6..c39a566ae 100644
--- a/obp-api/src/main/scala/code/api/v3_0_0/OBPAPI3_0_0.scala
+++ b/obp-api/src/main/scala/code/api/v3_0_0/OBPAPI3_0_0.scala
@@ -28,7 +28,7 @@ package code.api.v3_0_0
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.api.util.VersionedOBPApis
import code.api.v1_3_0.APIMethods130
import code.api.v1_4_0.APIMethods140
@@ -53,7 +53,7 @@ object OBPAPI3_0_0 extends OBPRestHelper with APIMethods130 with APIMethods140 w
val version : ApiVersion = ApiVersion.v3_0_0
- val versionStatus = "STABLE" // TODO this should be a property of ApiVersion.
+ val versionStatus = ApiVersionStatus.STABLE.toString // TODO this should be a property of ApiVersion.
// Possible Endpoints from 1.2.1
diff --git a/obp-api/src/main/scala/code/api/v3_1_0/OBPAPI3_1_0.scala b/obp-api/src/main/scala/code/api/v3_1_0/OBPAPI3_1_0.scala
index 16672520b..79818a9fc 100644
--- a/obp-api/src/main/scala/code/api/v3_1_0/OBPAPI3_1_0.scala
+++ b/obp-api/src/main/scala/code/api/v3_1_0/OBPAPI3_1_0.scala
@@ -28,7 +28,7 @@ package code.api.v3_1_0
import code.api.OBPRestHelper
import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import code.api.util.VersionedOBPApis
import code.api.v1_3_0.APIMethods130
import code.api.v1_4_0.APIMethods140
@@ -52,7 +52,7 @@ object OBPAPI3_1_0 extends OBPRestHelper with APIMethods130 with APIMethods140 w
val version : ApiVersion = ApiVersion.v3_1_0
- val versionStatus = "STABLE"
+ val versionStatus = ApiVersionStatus.STABLE.toString
// Possible Endpoints from 1.2.1
diff --git a/obp-api/src/main/scala/code/api/v4_0_0/OBPAPI4_0_0.scala b/obp-api/src/main/scala/code/api/v4_0_0/OBPAPI4_0_0.scala
index cf9ecd612..7aafc5653 100644
--- a/obp-api/src/main/scala/code/api/v4_0_0/OBPAPI4_0_0.scala
+++ b/obp-api/src/main/scala/code/api/v4_0_0/OBPAPI4_0_0.scala
@@ -39,7 +39,7 @@ import code.api.v3_0_0.custom.CustomAPIMethods300
import code.api.v3_1_0.{APIMethods310, OBPAPI3_1_0}
import code.util.Helper.MdcLoggable
import com.github.dwickern.macros.NameOf.nameOf
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion,ApiVersionStatus}
import net.liftweb.common.{Box, Full}
import net.liftweb.http.{LiftResponse, PlainTextResponse}
import org.apache.http.HttpStatus
@@ -51,7 +51,7 @@ object OBPAPI4_0_0 extends OBPRestHelper with APIMethods130 with APIMethods140 w
val version : ApiVersion = ApiVersion.v4_0_0
- val versionStatus = "DRAFT" // TODO this should be a property of ApiVersion.
+ val versionStatus = ApiVersionStatus.STABLE.toString
// Possible Endpoints from 4.0.0, exclude one endpoint use - method,exclude multiple endpoints use -- method,
// e.g getEndpoints(Implementations4_0_0) -- List(Implementations4_0_0.genericEndpoint, Implementations4_0_0.root)
diff --git a/obp-api/src/main/scala/code/api/v5_0_0/OBPAPI5_0_0.scala b/obp-api/src/main/scala/code/api/v5_0_0/OBPAPI5_0_0.scala
index adfc5d48a..39403c010 100644
--- a/obp-api/src/main/scala/code/api/v5_0_0/OBPAPI5_0_0.scala
+++ b/obp-api/src/main/scala/code/api/v5_0_0/OBPAPI5_0_0.scala
@@ -41,7 +41,7 @@ import code.api.v4_0_0.{APIMethods400, OBPAPI4_0_0}
import code.api.v4_0_0.OBPAPI4_0_0.{Implementations4_0_0, endpointsOf4_0_0}
import code.util.Helper.MdcLoggable
import com.github.dwickern.macros.NameOf.nameOf
-import com.openbankproject.commons.util.ApiVersion
+import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus}
import net.liftweb.common.{Box, Full}
import net.liftweb.http.{LiftResponse, PlainTextResponse}
import org.apache.http.HttpStatus
@@ -65,7 +65,7 @@ object OBPAPI5_0_0 extends OBPRestHelper
val version : ApiVersion = ApiVersion.v5_0_0
- val versionStatus = "BLEEDING-EDGE" // TODO this should be a property of ApiVersion.
+ val versionStatus = ApiVersionStatus.STABLE.toString
// Possible Endpoints from 5.0.0, exclude one endpoint use - method,exclude multiple endpoints use -- method,
// e.g getEndpoints(Implementations5_0_0) -- List(Implementations5_0_0.genericEndpoint, Implementations5_0_0.root)
diff --git a/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala b/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala
new file mode 100644
index 000000000..4ad574fb5
--- /dev/null
+++ b/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala
@@ -0,0 +1,38 @@
+package code.api.v5_1_0
+
+
+import code.api.util.APIUtil._
+
+import code.transactionrequests.TransactionRequests.TransactionRequestTypes.{apply => _}
+import com.github.dwickern.macros.NameOf.nameOf
+import com.openbankproject.commons.model.BankId
+import com.openbankproject.commons.util.ApiVersion
+import net.liftweb.http.rest.RestHelper
+import com.openbankproject.commons.ExecutionContext.Implicits.global
+import scala.collection.mutable.ArrayBuffer
+
+
+trait APIMethods510 {
+ self: RestHelper =>
+
+ val Implementations5_1_0 = new Implementations510()
+
+ class Implementations510 {
+
+ val implementedInApiVersion = ApiVersion.v5_1_0
+
+ private val staticResourceDocs = ArrayBuffer[ResourceDoc]()
+ def resourceDocs = staticResourceDocs
+
+ val apiRelations = ArrayBuffer[ApiRelation]()
+ val codeContext = CodeContext(staticResourceDocs, apiRelations)
+
+ }
+}
+
+object APIMethods510 extends RestHelper with APIMethods510 {
+ lazy val newStyleEndpoints: List[(String, String)] = Implementations5_1_0.resourceDocs.map {
+ rd => (rd.partialFunctionName, rd.implementedInApiVersion.toString())
+ }.toList
+}
+
diff --git a/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala b/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala
new file mode 100644
index 000000000..e90c13a75
--- /dev/null
+++ b/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala
@@ -0,0 +1,34 @@
+/**
+ * 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 .
+ * *
+ * Email: contact@tesobe.com
+ * TESOBE GmbH
+ * Osloerstrasse 16/17
+ * Berlin 13359, Germany
+ * *
+ * This product includes software developed at
+ * TESOBE (http://www.tesobe.com/)
+ *
+ */
+package code.api.v5_1_0
+
+
+object JSONFactory510 {
+
+
+}
+
diff --git a/obp-api/src/main/scala/code/api/v5_1_0/OBPAPI5_1_0.scala b/obp-api/src/main/scala/code/api/v5_1_0/OBPAPI5_1_0.scala
new file mode 100644
index 000000000..30e3fcd90
--- /dev/null
+++ b/obp-api/src/main/scala/code/api/v5_1_0/OBPAPI5_1_0.scala
@@ -0,0 +1,109 @@
+/**
+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 .
+
+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.v5_1_0
+
+import code.api.OBPRestHelper
+import code.api.util.APIUtil.{OBPEndpoint, getAllowedEndpoints}
+import code.api.util.{APIUtil, VersionedOBPApis}
+import code.api.v1_3_0.APIMethods130
+import code.api.v1_4_0.APIMethods140
+import code.api.v2_0_0.APIMethods200
+import code.api.v2_1_0.APIMethods210
+import code.api.v2_2_0.APIMethods220
+import code.api.v3_0_0.APIMethods300
+import code.api.v3_0_0.custom.CustomAPIMethods300
+import code.api.v3_1_0.APIMethods310
+import code.api.v4_0_0.APIMethods400
+import code.api.v5_0_0.{APIMethods500, OBPAPI5_0_0}
+import code.util.Helper.MdcLoggable
+import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus}
+import net.liftweb.common.{Box, Full}
+import net.liftweb.http.{LiftResponse, PlainTextResponse}
+import org.apache.http.HttpStatus
+
+/*
+This file defines which endpoints from all the versions are available in v5.0.0
+ */
+object OBPAPI5_1_0 extends OBPRestHelper
+ with APIMethods130
+ with APIMethods140
+ with APIMethods200
+ with APIMethods210
+ with APIMethods220
+ with APIMethods300
+ with CustomAPIMethods300
+ with APIMethods310
+ with APIMethods400
+ with APIMethods500
+ with APIMethods510
+ with MdcLoggable
+ with VersionedOBPApis{
+
+ val version : ApiVersion = ApiVersion.v5_1_0
+
+ val versionStatus = ApiVersionStatus.`BLEEDING-EDGE`.toString
+
+ // Possible Endpoints from 5.1.0, exclude one endpoint use - method,exclude multiple endpoints use -- method,
+ // e.g getEndpoints(Implementations5_0_0) -- List(Implementations5_0_0.genericEndpoint, Implementations5_0_0.root)
+ val endpointsOf5_1_0 = getEndpoints(Implementations5_1_0)
+
+ // if old version ResourceDoc objects have the same name endpoint with new version, omit old version ResourceDoc.
+ def allResourceDocs = collectResourceDocs(
+ OBPAPI5_0_0.allResourceDocs,
+ Implementations5_1_0.resourceDocs
+ )
+
+ // all endpoints
+ private val endpoints: List[OBPEndpoint] = OBPAPI5_0_0.routes ++ endpointsOf5_1_0
+
+ // Filter the possible endpoints by the disabled / enabled Props settings and add them together
+ val routes : List[OBPEndpoint] = getAllowedEndpoints(endpoints, allResourceDocs)
+
+ // register v5.1.0 apis first, Make them available for use!
+ registerRoutes(routes, allResourceDocs, apiPrefix, true)
+
+
+ logger.info(s"version $version has been run! There are ${routes.length} routes, ${allResourceDocs.length} allResourceDocs.")
+
+ // specified response for OPTIONS request.
+ private val corsResponse: Box[LiftResponse] = Full{
+ val corsHeaders = List(
+ "Access-Control-Allow-Origin" -> "*",
+ "Access-Control-Allow-Methods" -> "GET, POST, OPTIONS, PUT, PATCH, DELETE",
+ "Access-Control-Allow-Headers" -> "*",
+ "Access-Control-Allow-Credentials" -> "true",
+ "Access-Control-Max-Age" -> "1728000" //Tell client that this pre-flight info is valid for 20 days
+ )
+ PlainTextResponse("", corsHeaders, HttpStatus.SC_NO_CONTENT)
+ }
+ /*
+ * process OPTIONS http request, just return no content and status is 204
+ */
+ this.serve({
+ case req if req.requestType.method == "OPTIONS" => corsResponse
+ })
+}
diff --git a/obp-api/src/test/resources/frozen_type_meta_data b/obp-api/src/test/resources/frozen_type_meta_data
index e88e048f6..80ec0af9e 100644
Binary files a/obp-api/src/test/resources/frozen_type_meta_data and b/obp-api/src/test/resources/frozen_type_meta_data differ
diff --git a/obp-api/src/test/scala/code/util/ApiVersionUtilsTest.scala b/obp-api/src/test/scala/code/util/ApiVersionUtilsTest.scala
index 1a14ed896..05d1bd510 100644
--- a/obp-api/src/test/scala/code/util/ApiVersionUtilsTest.scala
+++ b/obp-api/src/test/scala/code/util/ApiVersionUtilsTest.scala
@@ -20,6 +20,6 @@ class ApiVersionUtilsTest extends V400ServerSetup {
versions.map(version => ApiVersionUtils.valueOf(version.fullyQualifiedVersion))
//NOTE, when we added the new version, better fix this number manually. and also check the versions
- versions.length shouldBe(24)
+ versions.length shouldBe(25)
}}
}
\ No newline at end of file
diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala
index 3e78ea0fb..110b856b0 100644
--- a/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala
+++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala
@@ -23,11 +23,17 @@ object ApiShortVersions extends Enumeration {
val `v3.1.0` = Value("v3.1.0")
val `v4.0.0` = Value("v4.0.0")
val `v5.0.0` = Value("v5.0.0")
+ val `v5.1.0` = Value("v5.1.0")
val b1 = Value
val `dynamic-endpoint` = Value("dynamic-endpoint")
val `dynamic-entity` = Value("dynamic-entity")
}
+object ApiVersionStatus extends Enumeration {
+ type Status = Value
+ val STABLE, `BLEEDING-EDGE`,DRAFT = Value
+}
+
sealed trait ApiVersion {
lazy val dottedApiVersion: String = this.toString.replace("_", ".").replace("v","")
lazy val vDottedApiVersion: String = this.toString.replace("_", ".")
@@ -108,6 +114,7 @@ object ApiVersion {
val v3_1_0 = ScannedApiVersion(urlPrefix,ApiStandards.obp.toString,ApiShortVersions.`v3.1.0`.toString)
val v4_0_0 = ScannedApiVersion(urlPrefix,ApiStandards.obp.toString,ApiShortVersions.`v4.0.0`.toString)
val v5_0_0 = ScannedApiVersion(urlPrefix,ApiStandards.obp.toString,ApiShortVersions.`v5.0.0`.toString)
+ val v5_1_0 = ScannedApiVersion(urlPrefix,ApiStandards.obp.toString,ApiShortVersions.`v5.1.0`.toString)
val `dynamic-endpoint` = ScannedApiVersion(urlPrefix,ApiStandards.obp.toString,ApiShortVersions.`dynamic-endpoint`.toString)
val `dynamic-entity` = ScannedApiVersion(urlPrefix,ApiStandards.obp.toString,ApiShortVersions.`dynamic-entity`.toString)
@@ -126,6 +133,7 @@ object ApiVersion {
v3_1_0 ::
v4_0_0 ::
v5_0_0 ::
+ v5_1_0 ::
b1 ::
`dynamic-endpoint` ::
`dynamic-entity`::