From 03266bf4ec7024f4c95f2485a25ecefca186fdea Mon Sep 17 00:00:00 2001 From: Valmo Trindade Date: Thu, 29 Aug 2024 18:23:16 -0300 Subject: [PATCH] added delete marker endpoint on dynamic library --- extensions/armatak/controller.go | 34 ++++++++++++++++++++++++++++ extensions/armatak/main.go | 18 +++++++++++++-- extensions/armatak/service.go | 16 ++++++++++++++ extensions/armatak/util.go | 38 ++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 2 deletions(-) diff --git a/extensions/armatak/controller.go b/extensions/armatak/controller.go index 4ca4ae7..d203621 100644 --- a/extensions/armatak/controller.go +++ b/extensions/armatak/controller.go @@ -52,3 +52,37 @@ func armatak_controller_args_post_marker( return armatak_service_post_marker(args) } + +func armatak_controller_post_marker_debug( + ctx a3interface.ArmaExtensionContext, + data string, +) (string, error) { + return invalidCallExtensionMethod("post marker requires args") +} + +func armatak_controller_args_post_marker_debug( + ctx a3interface.ArmaExtensionContext, + command string, + args []string, +) (string, error) { + sanitazeArgs(args) + + return armatak_service_post_marker(args) +} + +func armatak_controller_delete_marker( + ctx a3interface.ArmaExtensionContext, + data string, +) (string, error) { + return invalidCallExtensionMethod("post marker requires args") +} + +func armatak_controller_args_delete_marker( + ctx a3interface.ArmaExtensionContext, + command string, + args []string, +) (string, error) { + sanitazeArgs(args) + + return armatak_service_delete_marker(args) +} diff --git a/extensions/armatak/main.go b/extensions/armatak/main.go index 8fdbece..40a6f4b 100644 --- a/extensions/armatak/main.go +++ b/extensions/armatak/main.go @@ -26,16 +26,30 @@ func init() { Register() a3interface.NewRegistration("get_auth_token"). - SetDefaultResponse("getting uuid4"). + SetDefaultResponse("getting auth token"). SetRunInBackground(false). SetFunction(armatak_controller_get_auth_token). SetArgsFunction(armatak_controller_args_get_auth_token). Register() a3interface.NewRegistration("post_marker"). - SetDefaultResponse("getting uuid4"). + SetDefaultResponse("posting marker"). SetRunInBackground(true). SetFunction(armatak_controller_post_marker). SetArgsFunction(armatak_controller_args_post_marker). Register() + + a3interface.NewRegistration("post_marker_debug"). + SetDefaultResponse("posting marker (debug mode)"). + SetRunInBackground(false). + SetFunction(armatak_controller_post_marker_debug). + SetArgsFunction(armatak_controller_args_post_marker_debug). + Register() + + a3interface.NewRegistration("delete_marker"). + SetDefaultResponse("deleting marker"). + SetRunInBackground(false). + SetFunction(armatak_controller_delete_marker). + SetArgsFunction(armatak_controller_args_delete_marker). + Register() } diff --git a/extensions/armatak/service.go b/extensions/armatak/service.go index 938daa8..277c3a7 100644 --- a/extensions/armatak/service.go +++ b/extensions/armatak/service.go @@ -59,3 +59,19 @@ func armatak_service_post_marker(args []string) (string, error) { return response, nil } + +func armatak_service_delete_marker(args []string) (string, error) { + marker, markerError := parseMarkerArgs(args) + + if markerError != nil { + return "", markerError + } + + response, responseError := deleteRequest(args[8]+"/api/markers?auth_token="+args[9], marker) + + if responseError != nil { + return "", responseError + } + + return response, nil +} diff --git a/extensions/armatak/util.go b/extensions/armatak/util.go index f04bc01..d28c086 100644 --- a/extensions/armatak/util.go +++ b/extensions/armatak/util.go @@ -143,3 +143,41 @@ func postRequest(route string, body any) (string, error) { return string(parsedBody), nil } + +func deleteRequest(route string, body any) (string, error) { + jsonData, err := json.Marshal(body) + if err != nil { + fmt.Println("Error marshalling payload:", err) + return "", err + } + + client := &http.Client{} + + req, err := http.NewRequest(http.MethodDelete, route, bytes.NewReader(jsonData)) + if err != nil { + fmt.Println("Error creating request:", err) + return "", err + } + + req.Header.Set("Content-Type", "application/json") + + resp, err := client.Do(req) + if err != nil { + fmt.Println("Error sending request:", err) + return "", err + } + + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + fmt.Println("Error sending request:", resp.Status) + return "", nil + } + + parsedBody, err := io.ReadAll(resp.Body) + if err != nil { + return "", fmt.Errorf("getting Error reading response body: %w", err) + } + + return string(parsedBody), nil +}