mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 17:37:00 +00:00
feature/Add endpoint Get API Info (root) v5.1.0
This commit is contained in:
parent
3c46d5241c
commit
f0758179ea
@ -1,7 +1,7 @@
|
||||
package code.api.v5_1_0
|
||||
|
||||
|
||||
import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.{apiCollectionJson400, apiCollectionsJson400, postApiCollectionJson400, revokedConsentJsonV310}
|
||||
import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.{apiCollectionJson400, apiCollectionsJson400, apiInfoJson400, postApiCollectionJson400, revokedConsentJsonV310}
|
||||
import code.api.util.APIUtil._
|
||||
import code.api.util.ApiRole._
|
||||
import code.api.util.ApiTag._
|
||||
@ -16,7 +16,7 @@ import code.util.Helper
|
||||
import com.github.dwickern.macros.NameOf.nameOf
|
||||
import com.openbankproject.commons.ExecutionContext.Implicits.global
|
||||
import com.openbankproject.commons.model.BankId
|
||||
import com.openbankproject.commons.util.ApiVersion
|
||||
import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion}
|
||||
import net.liftweb.common.Full
|
||||
import net.liftweb.http.rest.RestHelper
|
||||
|
||||
@ -32,7 +32,7 @@ trait APIMethods510 {
|
||||
|
||||
class Implementations510 {
|
||||
|
||||
val implementedInApiVersion = ApiVersion.v5_1_0
|
||||
val implementedInApiVersion: ScannedApiVersion = ApiVersion.v5_1_0
|
||||
|
||||
private val staticResourceDocs = ArrayBuffer[ResourceDoc]()
|
||||
def resourceDocs = staticResourceDocs
|
||||
@ -41,6 +41,34 @@ trait APIMethods510 {
|
||||
val codeContext = CodeContext(staticResourceDocs, apiRelations)
|
||||
|
||||
|
||||
|
||||
staticResourceDocs += ResourceDoc(
|
||||
root,
|
||||
implementedInApiVersion,
|
||||
"root",
|
||||
"GET",
|
||||
"/root",
|
||||
"Get API Info (root)",
|
||||
"""Returns information about:
|
||||
|
|
||||
|* API version
|
||||
|* Hosted by information
|
||||
|* Hosted at information
|
||||
|* Energy source information
|
||||
|* Git Commit""",
|
||||
EmptyBody,
|
||||
apiInfoJson400,
|
||||
List(UnknownError, "no connector set"),
|
||||
apiTagApi :: apiTagNewStyle :: Nil)
|
||||
|
||||
lazy val root : OBPEndpoint = {
|
||||
case (Nil | "root" :: Nil) JsonGet _ => {
|
||||
cc => Future {
|
||||
JSONFactory510.getApiInfoJSON(implementedInApiVersion) -> HttpCode.`200`(cc.callContext)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
staticResourceDocs += ResourceDoc(
|
||||
getAllApiCollections,
|
||||
implementedInApiVersion,
|
||||
|
||||
@ -26,8 +26,61 @@
|
||||
*/
|
||||
package code.api.v5_1_0
|
||||
|
||||
import code.api.Constant
|
||||
import code.api.util.APIUtil
|
||||
import code.api.util.APIUtil.gitCommit
|
||||
import code.api.v4_0_0.{EnergySource400, HostedAt400, HostedBy400}
|
||||
import com.openbankproject.commons.util.ScannedApiVersion
|
||||
|
||||
|
||||
case class APIInfoJsonV510(
|
||||
version : String,
|
||||
version_status: String,
|
||||
git_commit : String,
|
||||
stage : String,
|
||||
connector : String,
|
||||
hostname : String,
|
||||
local_identity_provider : String,
|
||||
hosted_by : HostedBy400,
|
||||
hosted_at : HostedAt400,
|
||||
energy_source : EnergySource400,
|
||||
resource_docs_requires_role: Boolean
|
||||
)
|
||||
|
||||
object JSONFactory510 {
|
||||
def getApiInfoJSON(implementedInApiVersion: ScannedApiVersion) = {
|
||||
val (apiVersion, apiVersionStatus) = (implementedInApiVersion, OBPAPI5_1_0.versionStatus)
|
||||
val organisation = APIUtil.getPropsValue("hosted_by.organisation", "TESOBE")
|
||||
val email = APIUtil.getPropsValue("hosted_by.email", "contact@tesobe.com")
|
||||
val phone = APIUtil.getPropsValue("hosted_by.phone", "+49 (0)30 8145 3994")
|
||||
val organisationWebsite = APIUtil.getPropsValue("organisation_website", "https://www.tesobe.com")
|
||||
val hostedBy = new HostedBy400(organisation, email, phone, organisationWebsite)
|
||||
|
||||
val organisationHostedAt = APIUtil.getPropsValue("hosted_at.organisation", "")
|
||||
val organisationWebsiteHostedAt = APIUtil.getPropsValue("hosted_at.organisation_website", "")
|
||||
val hostedAt = HostedAt400(organisationHostedAt, organisationWebsiteHostedAt)
|
||||
|
||||
val organisationEnergySource = APIUtil.getPropsValue("energy_source.organisation", "")
|
||||
val organisationWebsiteEnergySource = APIUtil.getPropsValue("energy_source.organisation_website", "")
|
||||
val energySource = EnergySource400(organisationEnergySource, organisationWebsiteEnergySource)
|
||||
|
||||
val connector = APIUtil.getPropsValue("connector").openOrThrowException("no connector set")
|
||||
val resourceDocsRequiresRole = APIUtil.getPropsAsBoolValue("resource_docs_requires_role", false)
|
||||
|
||||
APIInfoJsonV510(
|
||||
version = apiVersion.vDottedApiVersion,
|
||||
version_status = apiVersionStatus,
|
||||
git_commit = gitCommit,
|
||||
connector = connector,
|
||||
hostname = Constant.HostName,
|
||||
stage = System.getProperty("run.mode"),
|
||||
local_identity_provider = Constant.localIdentityProvider,
|
||||
hosted_by = hostedBy,
|
||||
hosted_at = hostedAt,
|
||||
energy_source = energySource,
|
||||
resource_docs_requires_role = resourceDocsRequiresRole
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user