|
Hi,
i implemented a new modality when sending event messages inside EventForwarder, now you can send requests as a "form-urlencoded", this means that the actual payload will be sent as a form parameter (the parameter name is configurable), this strategy will let you to add another parameters inside the form body message too.
You can add new custom form params almost on the same way as the custom headers are inserted (event.forward.header), the only difference is that you will use the equals "=" char instead of ":" as key/value separator.
You can enable this mode using the option: "event.forward.payloadAsParamMode", when using this mode you can use the other 2 configuration elements, "event.forward.paramMode.payloadParamName" if you want to change the form name param of the payload (default is "payload") and "event.forward.paramMode.additionalParams" to specify additional key/value form params.
I added an option to prettyPrint the payload messages too, you can enable it using "event.forward.prettyPrintedPayload", i decided to add this option only for the EventForwarder behaviour.
This is an example (using all the new params) that lets you integrate traccar server with the pushover platform.
<entry key='status.timeout'>60</entry>
<entry key='event.statusHandler'>true</entry>
<entry key="event.forward.enable">true</entry>
<entry key='event.forward.url'>https://api.pushover.net/1/messages.json</entry>
<entry key='event.forward.prettyPrintedPayload'>true</entry>
<entry key='event.forward.payloadAsParamMode'>true</entry>
<entry key='event.forward.paramMode.payloadParamName'>message</entry>
<entry key='event.forward.paramMode.additionalParams'>
token=YOUR_TOKEN_ID
user=YOUR_USER_ID
</entry>
I tested the new options and they work pretty well.
Tried to make the change as clean as possible and avoiding code duplications. This mode does not change or affects the actual behabiour of the module.
Let me know what do you think.
|