summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/SevereCloud/vksdk/v2/api/execute.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/SevereCloud/vksdk/v2/api/execute.go')
-rw-r--r--vendor/github.com/SevereCloud/vksdk/v2/api/execute.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/github.com/SevereCloud/vksdk/v2/api/execute.go b/vendor/github.com/SevereCloud/vksdk/v2/api/execute.go
new file mode 100644
index 00000000..5bee205a
--- /dev/null
+++ b/vendor/github.com/SevereCloud/vksdk/v2/api/execute.go
@@ -0,0 +1,52 @@
+package api
+
+import "encoding/json"
+
+// ExecuteWithArgs a universal method for calling a sequence of other methods
+// while saving and filtering interim results.
+//
+// The Args map variable allows you to retrieve the parameters passed during
+// the request and avoids code formatting.
+//
+// return Args.code; // return parameter "code"
+// return Args.v; // return parameter "v"
+//
+// https://vk.com/dev/execute
+func (vk *VK) ExecuteWithArgs(code string, params Params, obj interface{}) error {
+ token := vk.getToken()
+
+ reqParams := Params{
+ "code": code,
+ "access_token": token,
+ "v": vk.Version,
+ }
+
+ resp, err := vk.Handler("execute", params, reqParams)
+
+ jsonErr := json.Unmarshal(resp.Response, &obj)
+ if jsonErr != nil {
+ return jsonErr
+ }
+
+ if resp.ExecuteErrors != nil {
+ return &resp.ExecuteErrors
+ }
+
+ return err
+}
+
+// Execute a universal method for calling a sequence of other methods while
+// saving and filtering interim results.
+//
+// https://vk.com/dev/execute
+func (vk *VK) Execute(code string, obj interface{}) error {
+ return vk.ExecuteWithArgs(code, Params{}, obj)
+}
+
+func fmtBool(value bool) string {
+ if value {
+ return "1"
+ }
+
+ return "0"
+}