mirror of
https://github.com/valmojr/armatak.git
synced 2026-06-13 15:43:29 +00:00
added all FTS API endpoints as a3go registery commands, will use a MVC approach on API to handle the FTS interation
This commit is contained in:
@@ -1,12 +1,8 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/indig0fox/a3go/a3interface"
|
||||
"github.com/indig0fox/a3go/assemblyfinder"
|
||||
@@ -30,71 +26,117 @@ func init() {
|
||||
a3interface.SetVersion("0.0.0")
|
||||
a3interface.RegisterErrorChan(a3ErrorChannel)
|
||||
|
||||
a3interface.NewRegistration("ping").
|
||||
SetDefaultResponse("[Received PING Command, starting background process]").
|
||||
SetRunInBackground(true).
|
||||
SetFunction(PingCommand).
|
||||
SetArgsFunction(PingCommandArgs).
|
||||
// ManageAPI/getHelp
|
||||
a3interface.NewRegistration("ManageAPI/getHelp").
|
||||
SetDefaultResponse("[Requested Get Help Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageAPI_getHelp).
|
||||
SetArgsFunction(armatak_controller_args_ManageAPI_getHelp).
|
||||
Register()
|
||||
}
|
||||
|
||||
func PingCommand(
|
||||
ctx a3interface.ArmaExtensionContext,
|
||||
data string,
|
||||
) (string, error) {
|
||||
dataSlice := strings.Split(data, "|")
|
||||
dataSliceWithoutPrefix := dataSlice[1:]
|
||||
for i, v := range dataSliceWithoutPrefix {
|
||||
dataSliceWithoutPrefix[i] = a3interface.RemoveEscapeQuotes(v)
|
||||
}
|
||||
|
||||
s := fmt.Sprintf(ctx.SteamID + ` called the ping command to use the dll inside ` + ctx.ServerName + modulePathDir)
|
||||
|
||||
postRequest(s)
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func PingCommandArgs(
|
||||
ctx a3interface.ArmaExtensionContext,
|
||||
command string,
|
||||
args []string,
|
||||
) (string, error) {
|
||||
for i, v := range args {
|
||||
args[i] = a3interface.RemoveEscapeQuotes(v)
|
||||
}
|
||||
|
||||
postRequest(strings.Join(args, " || "))
|
||||
|
||||
return fmt.Sprintf(`["Called by %s", %q, %q]`,
|
||||
ctx.SteamID,
|
||||
command,
|
||||
args,
|
||||
), nil
|
||||
}
|
||||
|
||||
func postRequest(content string) {
|
||||
webhookURL := "http://localhost:3000/ping"
|
||||
|
||||
payload := Payload{
|
||||
Content: content,
|
||||
}
|
||||
|
||||
jsonData, err := json.Marshal(payload)
|
||||
if err != nil {
|
||||
fmt.Println("Error marshalling payload:", err)
|
||||
return
|
||||
}
|
||||
|
||||
req, err := http.Post(webhookURL, "application/json", bytes.NewReader(jsonData))
|
||||
if err != nil {
|
||||
fmt.Println("Error creating request:", err)
|
||||
return
|
||||
}
|
||||
|
||||
defer req.Body.Close()
|
||||
|
||||
if req.StatusCode != http.StatusOK {
|
||||
fmt.Println("Error sending request:", req.Status)
|
||||
return
|
||||
}
|
||||
// ManageGeoObject/postGeoObject
|
||||
a3interface.NewRegistration("ManageGeoObject/postGeoObject").
|
||||
SetDefaultResponse("[Requested postGeoObject Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageGeoObject_postGeoObject).
|
||||
SetArgsFunction(armatak_controller_args_ManageGeoObject_postGeoObject).
|
||||
Register()
|
||||
// ManageGeoObject/putGeoObject
|
||||
a3interface.NewRegistration("ManageGeoObject/putGeoObject").
|
||||
SetDefaultResponse("[Requested putGeoObject Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageGeoObject_putGeoObject).
|
||||
SetArgsFunction(armatak_controller_args_ManageGeoObject_putGeoObject).
|
||||
Register()
|
||||
// ManageGeoObject/getGeoObject
|
||||
a3interface.NewRegistration("ManageGeoObject/getGeoObject").
|
||||
SetDefaultResponse("[Requested getGeoObject Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageGeoObject_getGeoObject).
|
||||
SetArgsFunction(armatak_controller_args_ManageGeoObject_getGeoObject).
|
||||
Register()
|
||||
// ManageGeoObject/getGeoObjectByZone
|
||||
a3interface.NewRegistration("ManageGeoObject/getGeoObjectByZone").
|
||||
SetDefaultResponse("[Requested getGeoObjectByZone Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageGeoObject_getGeoObjectByZone).
|
||||
SetArgsFunction(armatak_controller_args_ManageGeoObject_getGeoObjectByZone).
|
||||
Register()
|
||||
// ManageEmergency/postEmergency
|
||||
a3interface.NewRegistration("ManageEmergency/postEmergency").
|
||||
SetDefaultResponse("[Requested postEmergency Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageEmergency_postEmergency).
|
||||
SetArgsFunction(armatak_controller_args_ManageEmergency_postEmergency).
|
||||
Register()
|
||||
// ManageEmergency/getEmergency
|
||||
a3interface.NewRegistration("ManageEmergency/getEmergency").
|
||||
SetDefaultResponse("[Requested getEmergency Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageEmergency_getEmergency).
|
||||
SetArgsFunction(armatak_controller_args_ManageEmergency_getEmergency).
|
||||
Register()
|
||||
// ManageEmergency/deleteEmergency
|
||||
a3interface.NewRegistration("ManageEmergency/deleteEmergency").
|
||||
SetDefaultResponse("[Requested deleteEmergency Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageEmergency_deleteEmergency).
|
||||
SetArgsFunction(armatak_controller_args_ManageEmergency_deleteEmergency).
|
||||
Register()
|
||||
// ManageChat/postChatToAll
|
||||
a3interface.NewRegistration("ManageChat/postChatToAll").
|
||||
SetDefaultResponse("[Requested postChatToAll Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageChat_postChatToAll).
|
||||
SetArgsFunction(armatak_controller_args_ManageChat_postChatToAll).
|
||||
Register()
|
||||
// ManageRoute/postRoute
|
||||
a3interface.NewRegistration("ManageRoute/postRoute").
|
||||
SetDefaultResponse("[Requested postRoute Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageRoute_postRoute).
|
||||
SetArgsFunction(armatak_controller_args_ManageRoute_postRoute).
|
||||
Register()
|
||||
// ManagePresence/postPresence
|
||||
a3interface.NewRegistration("ManagePresence/postPresence").
|
||||
SetDefaultResponse("[Requested postPresence Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManagePresence_postPresence).
|
||||
SetArgsFunction(armatak_controller_args_ManagePresence_postPresence).
|
||||
Register()
|
||||
// ManagePresence/putPresence
|
||||
a3interface.NewRegistration("ManagePresence/putPresence").
|
||||
SetDefaultResponse("[Requested putPresence Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManagePresence_putPresence).
|
||||
SetArgsFunction(armatak_controller_args_ManagePresence_putPresence).
|
||||
Register()
|
||||
// ManageVideoStream/postVideoStream
|
||||
a3interface.NewRegistration("ManageVideoStream/postVideoStream").
|
||||
SetDefaultResponse("[Requested postVideoStream Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageVideoStream_postVideoStream).
|
||||
SetArgsFunction(armatak_controller_args_ManageVideoStream_postVideoStream).
|
||||
Register()
|
||||
// Sensor/postDrone
|
||||
a3interface.NewRegistration("Sensor/postDrone").
|
||||
SetDefaultResponse("[Requested postDrone Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_Sensor_postDrone).
|
||||
SetArgsFunction(armatak_controller_args_Sensor_postDrone).
|
||||
Register()
|
||||
// Sensor/postSPI
|
||||
a3interface.NewRegistration("Sensor/postSPI").
|
||||
SetDefaultResponse("[Requested postSPI Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_Sensor_postSPI).
|
||||
SetArgsFunction(armatak_controller_args_Sensor_postSPI).
|
||||
Register()
|
||||
// ManageKML/postKML
|
||||
a3interface.NewRegistration("ManageKML/postKML").
|
||||
SetDefaultResponse("[Requested postKML Command, starting background process]").
|
||||
SetRunInBackground(false).
|
||||
SetFunction(armatak_controller_ManageKML_postKML).
|
||||
SetArgsFunction(armatak_controller_args_ManageKML_postKML).
|
||||
Register()
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user