github.com/mailru/activerecord@v1.12.2/pkg/octopus/call.go (about) 1 package octopus 2 3 import ( 4 "context" 5 6 "github.com/pkg/errors" 7 ) 8 9 // CallLua - функция для вызова lua процедур. В будущем надо будет сделать возможность декларативно описывать процедуры в модели 10 // и в сгенерированном коде вызывать эту функцию. 11 // Так же надо будет сделать возможность описывать формат для результата в произвольной форме, а не в форме тупла для мочёдели. 12 func CallLua(ctx context.Context, connection *Connection, name string, args ...string) ([]TupleData, error) { 13 w := PackLua(name, args...) 14 15 resp, err := connection.Call(ctx, RequestTypeCall, w) 16 if err != nil { 17 return []TupleData{}, errors.Wrap(err, "error call lua") 18 } 19 20 tuple, err := ProcessResp(resp, 0) 21 if err != nil { 22 return []TupleData{}, errors.Wrap(err, "error unpack lua response") 23 } 24 25 return tuple, nil 26 }