Ensure you have service-manager python environment setup:
source ../servicemanager/bin/activate
Format:
sbt fmt
Then run the tests and coverage report:
sbt clean coverage test coverageReport
If your build fails due to poor testing coverage, DO NOT lower the test coverage, instead inspect the generated report located here on your local repo: /target/scala-2.12/scoverage-report/index.html
Manages the rendering of parameterised email using templates.
Note: Before sending a pull request with template changes, please look at our guidelines. |
---|
DC Team Note: Before accepting a PR and merging, please ensure you read through the following acceptance criteria. |
---|
Follow these instructions: How to deal with pull requests for transactional email templates |
---|
Path | Supported Methods | Description |
---|---|---|
/templates/:templateId |
POST | Renders the email template for the given template Id More... |
Renders the email template for the given template Id and returns the rendered template details.
Example request body - parameters with String type key and values.
{
"parameters": {
"param1" : "Parameter to be used in the email template",
"param2" : "Parameter to be used in the email template"
}
}
Responds with status:
- 200 When the template is rendered successfully
{
"plain": "Rendered template in text format",
"html": "Rendered template in HTML format",
"fromAddress": "From address to be used for this email when sending",
"subject": "Email subject to use",
"service": "The regime (i.e. - sa/paye/etc) that this template belongs to"
}
-
404 When the template with the provided template Id cannot be resolved.
-
400 When an insufficient set of parameters for rendering the template is specified in the request. Only the first missing mandatory value is reported.
See the How to add a template section to see the distinction between optional and mandatory parameters.
{
"status": "Rendering of template failed",
"reason": "key not found: param10"
}
Templates can be fiddly to get right as they can ordinarily only be viewed by actually generating an email and sending it. To work around this you can preview templates during development by running the micro-service from sbt:
# if you have already forked the repo pls run these git commands otherwise you will
# get an error related to majorVersion below
# java.lang.IllegalArgumentException: Invalid majorVersion: 2. You cannot request a major version of 2 if there are
no tags in the repository
git remote add upstream git@github.com:hmrc/hmrc-email-renderer.git
git fetch upstream
cd $WORKSPACE/hmrc-email-renderer
sbt -Dhttp.port=8950 -Dapplication.router=testOnlyDoNotUseInAppConf.Routes run
You should be able to list all the templates available for preview from http://localhost:8950/hmrc-email-renderer/test-only/preview.
Note that to render logos correctly the assets frontend also needs to be started using
sm --start ASSETS_FRONTEND -f
Alternatively, you can do a preview of emails by starting the service using sm
to preview the source, snapshot or release versions of the micro-service.
sm --start ASSETS_FRONTEND -r
sm --start HMRC_EMAIL_RENDERER [-f|-r]
Again, list the templates can then be previewed from
http://localhost:8950/hmrc-email-renderer/test-only/preview
If we want to make a template to work based on preference.
We have to add this to configuration in following place
https://github.com/hmrc/app-config-base/blob/master/hmrc-email-renderer.conf
key should be an english templateId and value should be a Welsh templateId
We make a call to preferences service to see whether language is set to English or Welsh, if Welsh we return welsh template otherwise english.
This code is open source software licensed under the Apache 2.0 License