forked from qiniu/logkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
api_transformer.go
81 lines (68 loc) · 2.41 KB
/
api_transformer.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package mgr
import (
"net/http"
"github.com/labstack/echo"
"github.com/qiniu/logkit/transforms"
. "github.com/qiniu/logkit/utils/models"
)
// GET /logkit/transformer/usages
func (rs *RestService) GetTransformerUsages() echo.HandlerFunc {
return func(c echo.Context) error {
return RespSuccess(c, transforms.GetTransformerUsages())
}
}
//GET /logkit/transformer/options
func (rs *RestService) GetTransformerOptions() echo.HandlerFunc {
return func(c echo.Context) error {
return RespSuccess(c, transforms.GetTransformerOptions())
}
}
//GET /logkit/transformer/sampleconfigs
func (rs *RestService) GetTransformerSampleConfigs() echo.HandlerFunc {
return func(c echo.Context) error {
SampleConfigs := make(map[string]string)
for _, v := range transforms.Transformers {
cr := v()
SampleConfigs[cr.Type()] = cr.SampleConfig()
}
return RespSuccess(c, SampleConfigs)
}
}
// POST /logkit/transformer/transform
// Transform (multiple logs/single log) in (json array/json object) format with registered transformers
// Return result string in json array format
func (rs *RestService) PostTransform() echo.HandlerFunc {
return func(c echo.Context) error {
var transformerConfig map[string]interface{} // request body params in map format
// bind request context onto map[string]string
if err := c.Bind(&transformerConfig); err != nil {
return RespError(c, http.StatusBadRequest, ErrTransformTransform, err.Error())
}
transformData, err := TransformData(transformerConfig)
if err != nil {
return RespError(c, http.StatusBadRequest, ErrTransformTransform, err.Error())
}
// Transform Success
return RespSuccess(c, transformData)
}
}
// POST /logkit/transformer/check
func (rs *RestService) PostTransformerCheck() echo.HandlerFunc {
return func(c echo.Context) error {
var transformerConfig map[string]interface{} // request body params in map format
// bind request context onto map[string]string
if err := c.Bind(&transformerConfig); err != nil {
return RespError(c, http.StatusBadRequest, ErrTransformTransform, err.Error())
}
create, err := getTransformerCreator(transformerConfig)
if err != nil {
return RespError(c, http.StatusBadRequest, ErrTransformTransform, err.Error())
}
_, err = getTransformer(transformerConfig, create)
if err != nil {
return RespError(c, http.StatusBadRequest, ErrTransformTransform, err.Error())
}
// Check Success
return RespSuccess(c, nil)
}
}