Skip to content

Commit 365eb3f

Browse files
committed
feat: display eval error
1 parent f067894 commit 365eb3f

File tree

4 files changed

+36
-11
lines changed

4 files changed

+36
-11
lines changed

apps/api-gql/internal/services/variables/variables.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,27 @@ func (c *Service) EvaluateScript(
133133
return "", fmt.Errorf("cannot evaluate script: %w", err)
134134
}
135135

136-
return result, nil
136+
var res string
137+
if result.Result != "" {
138+
res = result.Result
139+
} else if result.Error != "" {
140+
res = result.Error
141+
}
142+
143+
return res, nil
137144
}
138145

139146
result, err := c.executron.ExecuteUserCode(ctx, "javascript", script)
140147
if err != nil {
141148
return "", fmt.Errorf("cannot evaluate script: %w", err)
142149
}
143150

144-
return result, nil
151+
var res string
152+
if result.Result != "" {
153+
res = result.Result
154+
} else if result.Error != "" {
155+
res = result.Error
156+
}
157+
158+
return res, nil
145159
}

apps/parser/internal/variables/chat_eval/chat_eval.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,20 @@ var ChatEval = &types.Variable{
2626

2727
script := fmt.Sprintf(`return %s`, *parseCtx.Text)
2828

29-
res, err := parseCtx.Services.Executron.ExecuteUserCode(ctx, "javascript", script)
29+
req, err := parseCtx.Services.Executron.ExecuteUserCode(ctx, "javascript", script)
3030
if err != nil {
3131
parseCtx.Services.Logger.Sugar().Error(err)
3232
result.Result = "Probably you're doing some suspicious things or wrote wrong code."
3333
return result, nil
3434
}
3535

36+
var res string
37+
if req.Result != "" {
38+
res = req.Result
39+
} else if req.Error != "" {
40+
res = req.Error
41+
}
42+
3643
result.Result = res
3744
return result, nil
3845
},

apps/parser/internal/variables/custom_var/custom_var.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ var CustomVar = &types.Variable{
8282
)
8383
}
8484

85-
result.Result = res
85+
if res.Result != "" {
86+
result.Result = res.Result
87+
} else if res.Error != "" {
88+
result.Result = res.Error
89+
}
8690
}
8791

8892
if v.Type == model.CustomVarText || v.Type == model.CustomVarNumber {

apps/parser/pkg/executron/executron.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type request struct {
1414
Code string `json:"code"`
1515
}
1616

17-
type response struct {
17+
type Response struct {
1818
Result string `json:"result"`
1919
Error string `json:"error"`
2020
}
@@ -29,11 +29,11 @@ type Executron struct {
2929
apiUrl string
3030
}
3131

32-
func (c *Executron) ExecuteUserCode(ctx context.Context, language, code string) (string, error) {
32+
func (c *Executron) ExecuteUserCode(ctx context.Context, language, code string) (*Response, error) {
3333
u, _ := url.Parse(c.apiUrl)
3434
u.Path = "/run"
3535

36-
var executeResponse response
36+
var executeResponse Response
3737
resp, err := req.R().
3838
SetContext(ctx).
3939
SetBodyJsonMarshal(
@@ -45,15 +45,15 @@ func (c *Executron) ExecuteUserCode(ctx context.Context, language, code string)
4545
SetSuccessResult(&executeResponse).
4646
Post(u.String())
4747
if err != nil {
48-
return "", err
48+
return nil, err
4949
}
5050
if !resp.IsSuccessState() {
51-
return "", fmt.Errorf("cannot execute code: %s", resp.String())
51+
return nil, fmt.Errorf("cannot execute code: %s", resp.String())
5252
}
5353

5454
if executeResponse.Error != "" {
55-
return "", fmt.Errorf("cannot execute code: %s", executeResponse.Error)
55+
return nil, fmt.Errorf("cannot execute code: %s", executeResponse.Error)
5656
}
5757

58-
return executeResponse.Result, nil
58+
return &executeResponse, nil
5959
}

0 commit comments

Comments
 (0)