vanus-labs / vanus

Vanus is a Serverless, event streaming system with processing capabilities. It easily connects SaaS, Cloud Services, and Databases to help users build next-gen Event-driven Applications.

Home Page:https://vanus.ai

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Good First Issues]: implement function "extract_between_positions" - 7 points

Michaelg22 opened this issue · comments

commented

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

The function is used to extract value between the starting numeric position (starts from 0) and end numeric position from the source JSON path. Then assign the value to the target JSON path.

..

Description

Function name: extract_between_positions

Command+SourcePath+NewPath+StartingCharacterPosition+EndingCharacterPosition
Function description:

Extraction is base on the character position set by the user through the function.

Example

Position 9 to 16. "jay ding"

{
    "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" : {
        "info : "this is jay ding",

    }
}

After the function "extract_between_positions":

"pipeline":[
    {"command":["extract_between_positions","$.data.appinfoA", "&$.data.appinfoB", 9, 16]}
]

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" : {
        "info : "this is jay ding",
        "appinfoB" : "jay ding",
    }
}

How to implement

  1. Fork the vanus repository.
  2. Create a branch function-extract_between_positions
  3. Create extract_between_positions.go under internal/primitive/transform/action/strings, and then implement the function.
  4. Create extract_between_positions_test.go under internal/primitive/transform/action/strings for unit test.
  5. Register your function in internal/primitive/transform/runtime/init.go.
  6. 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.