This microservice contains server-side endpoints that supports mobile app-specific Help to Save functionality.
- Run locally:
sbt runwhich runs on port8248by default - Run with test endpoints:
sbt 'run -Dplay.http.router=testOnlyDoNotUseInAppConf.Routes'
The service can be run locally from Service Manager, using the following profiles:
| Profile Details | Command |
|---|---|
| MOBILE_HELP_TO_SAVE_TESTS | sm2 --start MOBILE_HELP_TO_SAVE_TESTS --appendArgs '{"MOBILE_HELP_TO_SAVE":["-Dapplication.router=testOnlyDoNotUseInAppConf.Routes"]}' |
- Run Unit Tests:
sbt test - Run Integration Tests:
sbt it:test - Run Unit and Integration Tests:
sbt test it:test - Run Unit and Integration Tests with coverage report:
sbt clean compile coverage test it:test coverageReport dependencyUpdates
~~ ~~### GET /mobile-help-to-save/startup
Returns information that the mobile app is likely to need each time it starts.
Response format:
{
"shuttering": {
"shuttered": false,
"title": "We are shuttered",
""message": "Please try again tomorrow"
},
// URL of page containing information about the Help to Save scheme
"infoUrl": "/mobile-help-to-save/info",
// URL that will redirect enrolled users to the NS&I Help to Save account homepage
"accessAccountUrl": "/mobile-help-to-save/access-account",
// User-specific Help to Save data
"user": {
// user state, can be "NotEnrolled", "NotEnrolledButEligible", or "Enrolled". See <confluence>/display/NGC/Help+to+Save+User+States
"state": "Enrolled"
}
}
If there is a problem obtaining the user-specific data then the user object will be replaced with a userError object. Other fields (feature flags and shuttering) will be unaffected and still returned:
// etc... shuttering and other feature flags omitted for brevity
"userError": { "code": "GENERAL" }
// no "user" object
}
If there is a problem obtaining the account data then the user.account object will be replaced with a user.accountError object. Other fields will be unaffected and still returned:
// etc... shuttering and other feature flags omitted for brevity
"user": {
"state": "Enrolled"
"accountError": { "code": "GENERAL" }
// no "account" object
}
}
If the user.state is not Enrolled or none of the feature flags that
require account data are true then no attempt is made to fetch the account
data and neither user.account nor user.accountError will be present.
When the Help to Save section of the app is shuttered then shuttering.shuttered will be true and other fields except for feature flags will be omitted:
{
"shuttering": {
"shuttered": true,
"title": "Service Unavailable",
"message": "You’ll be able to use the Help to Save service at 9am on Monday 29 May 2017."
}
}
To run the tests in this repository:
sbt test it:test
This code is open source software licensed under the Apache 2.0 License