Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Create a concept for usage of  the template engine.

6th. call  (

...

Th.,

...

11. July 2013)

Agenda:

Querstions:

  • None - just discuss status und further steps

Summery:

After Michael made some notes to my code and my proposed usage example, i made some changes and we discussed the example. I renamed 'metadata' to 'mappers' as it is more precise.

Next Michael pointed me to a mistake i made. The approach above saves a specific data, where we actually want a variable. So that we may generate a document for different instances.

More precise: insted of "metadata":{"client":"/api/v1/clients/3"} we change it to {"mappers":"/api/v1/clients/{{clentID}}"} and the user has to send the clientID

So we end up with the new approach:

POST (creates new) TEMPLATE:

curl -X POST -i -H "Accept: application/json" -H "Content-type: application/json" -k --user mifos -d '{"text":"<html><header><title>This is title</title></header><body>Hello {{client.name}}, bye {{sender}}</body></html>","name":"foo","mappers":{"client":"/api/v1/clients/{{url.clientID}}"}}' https://localhost:8443/mifosng-provider/api/v1/templates?tenantIdentifier=default

GET MERGED TEMPLATE (e.g. for template with 3313):

curl  -k --user mifos -X POST -i  -H "Accept: text/html" -H "Content-type: application/json" -d '{"sender":"me", "clientID": 736}' https://localhost:8443/mifosng-provider/api/v1/templates/3313&clientID=736?tenantIdentifier=default

 

Further thoughts (for next versions of feature):

specify in the value of the mappers not only a url, but also what it is and how to get it:

  • "mapper":{"client":"GET JSON /api/v1/clients/{{url.clientID}}"
  • "mapper":{"client" :"GET JSON /api/v1/clients/{{url.clientID}}", "now": "java: new java.util.Date()"}
  • "mapper":{"client" :"java: getClient({{url.clientID}}) }
  • "mapper": {"client":"GET JSON http://{config.crmSystemURL}/api/clients/{{request.clientID}}"}}'

ToDo:

Implement url templating (or more generic, the value of the mappers)

7th. call  (Th., 18. July 2013)

Agenda:

  1. Clarify questions
  2. Discuss further steps

Querstions:

  1. How to avoid SSL problem when getting mappers resource?

Summery:

There are a few possibilities to implement the mapping of keywords with data. For more flexibility we decided to make http request to get the data.

Even for resources from mifos. For development purpose mifos is using a selfsigned certificate, which makes it difficult to make https request from java code.

So for development we discussed ignoring self-signed certificates.  

ToDo:

Implement url templating of mappers

8th. call  (Th., 29. July 2013)

Agenda:

  1. Clarify questions
  2. Discuss futher steps

Querstions:

  1. Basic-Authentication for mapper request?
  2. Talk about tests?
  3. Milestones for second half of gsoc (frontend development)

Summery:

After a demo of the current state, which includes the basic serverside template functionality Michael and me discussed about minor improvments. 

The SSL ignore functionality for dev should be configurable and we want to give something like static methods a try. Which means u could get an 

timestamp on document generation with a tag like {{NOW}}. After that we had a long talk about the usage of the overall functionallity and the start (or entry) point.

There are two basic pages needed. Something like an administration page giving the possibilty to creat templates and perhaps an extra tab at a concrete 

entity to use it. For the second scenario we would have to assign a specific entity to the template. Giving that it would be nice to have all the fields of an entity.

Those metadata would help the administrator to create a template.

As for now there is no API describing the metadata of an entity, so we code it into the ui.

 

Note: Consider custom fields (data tables)

ToDo:

Andreas:

Prepare Demo Document

Catch mappers url and implement condition, if absolute path already exists

E-Mail to Ed regarding google hangout

Implementation of abstraction-layer for template engine to add context

Static {{NOW}} method

Ignore self-signed cert property

Michael:

E-Mail to Ed, Keith regarding information about functional requirements, usage

xth. call  (Day, xx. Month 2013)

Agenda:

Querstions:

Summery:

ToDo: