diff options
| author | Christian Grothoff <christian@grothoff.org> | 2022-12-16 16:00:13 +0100 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2022-12-16 16:00:13 +0100 | 
| commit | 28dfae3e7c5d7291a4036358050c9c886ee43316 (patch) | |
| tree | fa1d2ee9a1b6c926198d74fe417e44bcd395a0f8 /src | |
| parent | 58983d7455dd0529be0b7e6ba599845956c75ea4 (diff) | |
expose templating API for in-memory data
Diffstat (limited to 'src')
| -rw-r--r-- | src/include/taler_templating_lib.h | 17 | ||||
| -rw-r--r-- | src/templating/templating_api.c | 25 | 
2 files changed, 42 insertions, 0 deletions
| diff --git a/src/include/taler_templating_lib.h b/src/include/taler_templating_lib.h index e4f3f1f1..53946b9c 100644 --- a/src/include/taler_templating_lib.h +++ b/src/include/taler_templating_lib.h @@ -25,6 +25,23 @@  /** + * Fill in Mustach template @a tmpl using the data from @a root + * and return the result in @a result. + * + * @param tmpl 0-terminated string with Mustach template + * @param root JSON data to fill into the template + * @param[out] result where to write the result + * @param[out] result_size where to write the length of the result + * @return 0 on success, otherwise Mustach-specific error code + */ +int +TALER_TEMPLATING_fill (const char *tmpl, +                       const json_t *root, +                       void **result, +                       size_t *result_size); + + +/**   * Load a @a template and substitute using @a root, returning the result in a   * @a reply encoded suitable for the @a connection with the given @a   * http_status code.  On errors, the @a http_status code diff --git a/src/templating/templating_api.c b/src/templating/templating_api.c index 47ada208..324e199e 100644 --- a/src/templating/templating_api.c +++ b/src/templating/templating_api.c @@ -171,6 +171,31 @@ make_static_url (struct MHD_Connection *con,  } +int +TALER_TEMPLATING_fill (const char *tmpl, +                       const json_t *root, +                       void **result, +                       size_t *result_size) +{ +  int eno; + +  if (0 != +      (eno = mustach_jansson (tmpl, +                              (json_t *) root, +                              (char **) result, +                              result_size))) +  { +    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, +                "mustach failed on template with error %d\n", +                eno); +    *result = NULL; +    *result_size = 0; +    return eno; +  } +  return eno; +} + +  enum GNUNET_GenericReturnValue  TALER_TEMPLATING_build (struct MHD_Connection *connection,                          unsigned int *http_status, | 
