Skip to content

Commit

Permalink
fix: parse to json before combine on jq.ExecuteToString
Browse files Browse the repository at this point in the history
  • Loading branch information
Deny Prasetyo committed Nov 23, 2021
1 parent 660cef2 commit 9a54a5a
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 7 deletions.
12 changes: 9 additions & 3 deletions pkg/jq/jq.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"encoding/json"
"fmt"
"github.com/gopaytech/go-commons/pkg/strings"
"log"

"github.com/itchyny/gojq"
)
Expand All @@ -24,10 +25,15 @@ type JsonQuery interface {
ExecuteToString(ctx context.Context) (output string, err error)
}

func ExecuteToString(ctx context.Context, inputJsonBytes []byte, query string, queryType QueryType) (output string, err error) {
func ExecuteToString(ctx context.Context, inputBytes []byte, query string, queryType QueryType) (output string, err error) {
builder := strings.NewBuilder()
err = Execute(ctx, inputJsonBytes, query, queryType, func(value interface{}) (cont bool) {
builder.Write("%v", value)
err = Execute(ctx, inputBytes, query, queryType, func(value interface{}) (cont bool) {
jsonByte, err := json.Marshal(value)
if err != nil {
log.Panicln(err)
return false
}
builder.WriteBytes(jsonByte)
return true
})

Expand Down
29 changes: 25 additions & 4 deletions pkg/strings/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,38 @@ import (
)

type Builder interface {
Write(format string, args ...interface{})
Writeln(format string, args ...interface{})
Write(value string)
Writeln(value string)
WriteBytes(bytes []byte)
WriteF(format string, args ...interface{})
WriteFln(format string, args ...interface{})
ToString() (out string)
ToStringReset() (out string)
Reset()
}

type builder struct {
stringBuilder *strings.Builder
}

func (builder builder) Write(format string, args ...interface{}) {
func (builder builder) WriteBytes(bytes []byte) {
builder.stringBuilder.Write(bytes)
}

func (builder builder) Write(value string) {
builder.stringBuilder.WriteString(value)
}

func (builder builder) Writeln(value string) {
builder.stringBuilder.WriteString(value)
builder.stringBuilder.WriteString("\n")
}

func (builder builder) WriteF(format string, args ...interface{}) {
builder.stringBuilder.WriteString(fmt.Sprintf(format, args...))
}

func (builder builder) Writeln(format string, args ...interface{}) {
func (builder builder) WriteFln(format string, args ...interface{}) {
builder.stringBuilder.WriteString(fmt.Sprintf(format, args...))
builder.stringBuilder.WriteString("\n")
}
Expand All @@ -35,6 +52,10 @@ func (builder builder) ToStringReset() (out string) {
return
}

func (builder builder) Reset() {
builder.stringBuilder.Reset()
}

func NewBuilder() Builder {
return &builder{stringBuilder: &strings.Builder{}}
}

0 comments on commit 9a54a5a

Please sign in to comment.