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:
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