diff --git a/models/HTTPReqRes/ clickhouse.go b/models/HTTPReqRes/ clickhouse.go index f7f4f44..63944de 100644 --- a/models/HTTPReqRes/ clickhouse.go +++ b/models/HTTPReqRes/ clickhouse.go @@ -1 +1,26 @@ package HTTPReqRes + +import clickhouse "github.com/roistat/go-clickhouse" + +//Add (HTTPReqRes, *bool) - Добавление новой записи в таблице HTTPReqRes. +func (_ *HTTPReqRes) Add(httpreqres HTTPReqRes, ok *bool) error { + var errs []error + *ok, errs = httpreqres.checkField("Path", "Params", "Req_data", "Created_date", "Created_time", "Res_data", "Status", "Method") + if !*ok { + return errs[0] + } + query, err := clickhouse.BuildInsert("HTTPReqRes", + clickhouse.Columns{"Path", "Params", "Req_data", "Created_date", "Created_time", "Res_data", "Status", "Method"}, + clickhouse.Row{*httpreqres.Path, *httpreqres.Params, *httpreqres.ReqData, *httpreqres.CreatedDate, *httpreqres.CreatedTime, *httpreqres.ResData, *httpreqres.Status, *httpreqres.Method}) + if err != nil { + *ok = false + return err + } + err = query.Exec(conn) + if err != nil { + *ok = false + return err + } + *ok = true + return nil +} diff --git a/models/HTTPReqRes/HTTPReqRes.go b/models/HTTPReqRes/HTTPReqRes.go index f7f4f44..8803721 100644 --- a/models/HTTPReqRes/HTTPReqRes.go +++ b/models/HTTPReqRes/HTTPReqRes.go @@ -1 +1,65 @@ package HTTPReqRes + +import ( + "fmt" + + clickhouse "github.com/roistat/go-clickhouse" +) + +type HTTPReqRes struct { + Path *string + Params *string + ReqData *string + CreatedDate *string //format "1970-01-01" + CreatedTime *string //format "20:12:18" + ResData *string + Status *string + Method *string +} + +// transport, connection to yandex clickhouse +var conn = clickhouse.NewConn("127.0.0.1:8123", clickhouse.NewHttpTransport()) + +func (httpreqres *HTTPReqRes) checkField(fields ...string) (bool, []error) { + errs := make([]error, 0) + for _, field := range fields { + switch field { + case "Path": + if httpreqres.Path == nil { + errs = append(errs, fmt.Errorf("Set Path field")) + } + case "Params": + if httpreqres.Params == nil { + errs = append(errs, fmt.Errorf("Set Params field")) + } + case "Req_data": + if httpreqres.ReqData == nil { + errs = append(errs, fmt.Errorf("Set Req_Data field")) + } + case "Created_date": + if httpreqres.CreatedDate == nil { + errs = append(errs, fmt.Errorf("Set Created_date field")) + } + case "Created_time": + if httpreqres.CreatedTime == nil { + errs = append(errs, fmt.Errorf("Set Created_Time field")) + } + case "Res_data": + if httpreqres.ResData == nil { + errs = append(errs, fmt.Errorf("Set Res_Data field")) + } + case "Status": + if httpreqres.Status == nil { + errs = append(errs, fmt.Errorf("Set Status field")) + } + case "Method": + if httpreqres.Method == nil { + errs = append(errs, fmt.Errorf("Set Method field")) + } + } + } + if len(errs) != 0 { + return false, errs + } + return true, nil +} diff --git a/models/HTTPReqRes/HTTPReqRes.sql b/models/HTTPReqRes/HTTPReqRes.sql index 4534752..3605b97 100644 --- a/models/HTTPReqRes/HTTPReqRes.sql +++ b/models/HTTPReqRes/HTTPReqRes.sql @@ -1 +1,14 @@ --- SQL HTTPReqRes --- + +CREATE TABLE HTTPReqRes( + Path String, + Params String, + Req_data String, + Created_date Date, + Created_time String, + Res_data String, + Status String, + Method String + +) +ENGINE=MergeTree(Created_date, (Path, Created_date), 8192);