libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit cf835854e5cd07fd7d1b630d5c13da31abe08f49
parent db3e71086c47654b0df31a10606223cb49661d3c
Author: ms <ms@taler.net>
Date:   Tue, 29 Jun 2021 11:37:24 +0200

Commenting out Jinja initialization.

It will be enabled again after having found a
solution for the i18n.

Diffstat:
Msandbox/src/main/kotlin/tech/libeufin/sandbox/Helpers.kt | 75++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 68 insertions(+), 7 deletions(-)

diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Helpers.kt b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Helpers.kt @@ -19,6 +19,9 @@ package tech.libeufin.sandbox +import com.google.common.io.Resources +import com.hubspot.jinjava.Jinjava +import com.hubspot.jinjava.lib.fn.ELFunctionDefinition import io.ktor.http.HttpStatusCode import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.and @@ -66,11 +69,11 @@ fun getBankAccountFromLabel(label: String): BankAccountEntity { fun getBankAccountFromSubscriber(subscriber: EbicsSubscriberEntity): BankAccountEntity { return transaction { - BankAccountEntity.find(BankAccountsTable.subscriber eq subscriber.id) - }.firstOrNull() ?: throw SandboxError( - HttpStatusCode.NotFound, - "Subscriber doesn't have any bank account" - ) + subscriber.bankAccount ?: throw SandboxError( + HttpStatusCode.NotFound, + "Subscriber doesn't have any bank account" + ) + } } fun getEbicsSubscriberFromDetails(userID: String, partnerID: String, hostID: String): EbicsSubscriberEntity { return transaction { @@ -82,4 +85,62 @@ fun getEbicsSubscriberFromDetails(userID: String, partnerID: String, hostID: Str "Ebics subscriber not found" ) } -} -\ No newline at end of file +} + +/** + * FIXME: commenting out until a solution for i18n is found. + * +private fun initJinjava(): Jinjava { + class JinjaFunctions { + // Used by templates to retrieve configuration values. + fun settings_value(name: String): String { + return "foo" + } + fun gettext(translatable: String): String { + // temporary, just to make the compiler happy. + return translatable + } + fun url(name: String): String { + val map = mapOf<String, String>( + "login" to "todo", + "profile" to "todo", + "register" to "todo", + "public-accounts" to "todo" + ) + return map[name] ?: throw SandboxError(HttpStatusCode.InternalServerError, "URL name unknown") + } + } + val jinjava = Jinjava() + val settingsValueFunc = ELFunctionDefinition( + "tech.libeufin.sandbox", "settings_value", + JinjaFunctions::class.java, "settings_value", String::class.java + ) + val gettextFuncAlias = ELFunctionDefinition( + "tech.libeufin.sandbox", "_", + JinjaFunctions::class.java, "gettext", String::class.java + ) + val gettextFunc = ELFunctionDefinition( + "", "gettext", + JinjaFunctions::class.java, "gettext", String::class.java + ) + val urlFunc = ELFunctionDefinition( + "tech.libeufin.sandbox", "url", + JinjaFunctions::class.java, "url", String::class.java + ) + + jinjava.globalContext.registerFunction(settingsValueFunc) + jinjava.globalContext.registerFunction(gettextFunc) + jinjava.globalContext.registerFunction(gettextFuncAlias) + jinjava.globalContext.registerFunction(urlFunc) + + return jinjava +} + +val jinjava = initJinjava() + +fun renderTemplate(templateName: String, context: Map<String, String>): String { + val template = Resources.toString(Resources.getResource( + "templates/$templateName"), Charsets.UTF_8 + ) + return jinjava.render(template, context) +} **/ +\ No newline at end of file