[Good First Issues]: implement function "split_from_end" - 7 points
Michaelg22 opened this issue · comments
Motivation
Vanus Functions are a series of pre-built functions worked within Vanus transformer. By choosing a function, users can specify the way that events will be changed.
It will be a good start if you decide to contribute to Vanus codes.
Details
Function name: split_from_end
Args
- sourceJsonPath
- position
- targetJsonPath
Description
The function is used to scan the source JSON path from right to left, split it into an array of two sub-strings from the given numeric position of the character, and assign the array to a target JSON path. The character of the position should be included in the first sub-string (from right to left).
Example
{
"specversion" : "1.0",
"type" : "com.example.someevent",
"source" : "/mycontext",
"subject": null,
"id" : "C234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data": {
"appinfoA" : "hello world!"
}
}
After the function.
"pipeline":[
{"command":["split_from_end", "$.data.appinfoA", 5, "$.data. appinfoB"]}
]
The transformed event should look like this:
{
"specversion" : "1.0",
"type" : "com.example.someevent",
"source" : "/mycontext",
"subject": null,
"id" : "C234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data" : {
"appinfoA" : "hello world!",
"appinfoB" : ["hello w", "orld!"]
}
}
How to implement
- Fork the vanus repository.
- Create a branch
function-split_from_end
- Create
split_from_end.go
underinternal/primitive/transform/action/strings
, and then implement the function. - Create
split_from_end_test.go
underinternal/primitive/transform/action/strings
for unit test. - Register your function in
internal/primitive/transform/runtime/init.go
. - Submit your PR
Contribution points
Each issue counts specific points based on its difficulty. Contributors earn the corresponding points if they solve that issue. Contribution points are used to describe the contributions contributors have made. They can also be used to get rewards when there are community events.
This issue counts 7 points.
How to claim to solve the issue
If you want to implement this function, please leave a comment in this issue like:
I'd like to implement this function, please assign this issue to me.
Vanus community will assign the issue to you on time.
I'd like to implement this function, please assign this issue to me.
Certainly, I appreciate your willingness to contribute to this issue. Moreover, I would like to invite you to join our Slack community to facilitate better communication in the future. Please feel free to ask any questions you may have there.
Hi @imonish8 Monish, how are you? I just closed a very similar issue. How is your progress? Would be glad to collaborate.
I will close this issue