Charts On Demand
This module works only for Ontimize Boot version 3.9.0 or above. Actual release version:
Prerequisites
You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.
There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.
Initial project
/$ git clone https://github.com/ontimize/ontimize-examples
/ontimize-examples$ cd ontimize-examples
/ontimize-examples$ git checkout boot-charts-initial
Final example
/$ git clone https://github.com/ontimize/ontimize-examples
/ontimize-examples$ cd ontimize-examples
/ontimize-examples$ git checkout boot-charts
Note: To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.
Steps
Database
Preferences Table
With the database started, we create the new tables that will store the charts information. We’re going to need to create two different tables, one for the chart itself and one for the chart custom parameters.
Server
Add Preferences DAOs
A specific DAO will be created for each of both tables in the system, and each of them will implement a different interface.
PreferencesDao.xml
PreferencesDao.java
- ontimize-examples
- projectwiki-api
- src
- main
- java
- com
- ontimize
- projectwiki
- api
- core
- service
- IUserService.java
- service
- core
- api
- projectwiki
- ontimize
- com
- java
- main
- pom.xml
- src
- projectwiki-boot
- src
- main
- java
- com
- ontimize
- projectwiki
- ServerApplication.java
- projectwiki
- ontimize
- com
- resources
- application.yml
- java
- main
- pom.xml
- src
- projectwiki-model
- src
- main
- db
- templateDB.tmp
- templateDB.lck
- templateDB.log
- templateDB.properties
- templateDB.script
- templateDB.txt
- java
- com
- ontimize
- projectwiki
- model
- core
- dao
- PreferencesDao.java
- UserDao.java
- UserRoleDao.java
- service
- UserService.java
- dao
- core
- model
- projectwiki
- ontimize
- com
- resources
- dao
- placeholders.properties
- PreferencesDao.xml
- RoleDao.xml
- RoleServerPermissionDao.xml
- ServerPermissionDao.xml
- UserDao.xml
- UserRoleDao.xml
- dao
- db
- main
- pom.xml
- src
- projectwiki-ws
- src
- main
- java
- com
- ontimize
- projectwiki
- ws
- core
- rest
- MainRestController.java
- TestRestController.java
- UserRestController.java
- rest
- core
- ws
- projectwiki
- ontimize
- com
- java
- main
- pom.xml
- src
- .gitignore
- candidates.zip
- pom.xml
- README.md
- projectwiki-api
Testing the preferences system
Save preferences
Allows to save the configuration of a chart in the database to do it again quickly
- URL: http://localhost:33333/preferences/save
- HTTP Method: POST
- Authorization: Basic Auth with parameters User: demo, Password: demouser
- Body: JSON
Element | Meaning |
---|---|
localhost:33333 | Indicates the host |
/preferences | Indicates the service to be queried |
/save | Indicates the method of the service that is going to be executed |
Body request:
Get preferences
Execute the following request: http://localhost:33333/preferences/preferences?entity=ENTITY&service=SERVICE&type=REPORT.
Element | Meaning |
---|---|
localhost:33333 | Indicates the host |
/preferences | Indicates the service to be queried |
/preferences | Indicates the method of the service that is going to be executed |
?entity=ENTITY | ENTITY indicates the entity to filter the preferences |
&service=SERVICE | SERVICE indicates the service to filter the preferences |
&type=CHART | Indicates the type to filter the preferences |
The authorization used for these requests is authorization of the type BASIC.
In all three cases cases, the access must be done with a user and password example:
User: demo
Password: demouser