From 97ae4f6cbb08479c52ebeea4e2cf0f35a3039da6 Mon Sep 17 00:00:00 2001 From: Tobias Lindberg Date: Thu, 11 Mar 2021 22:59:42 +0100 Subject: [PATCH] changing from commands path to command moving function checkArrayContainsString --- src/v1_TeslaMateAPICarsCommand.go | 11 +---------- src/webserver.go | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/v1_TeslaMateAPICarsCommand.go b/src/v1_TeslaMateAPICarsCommand.go index 54e79bd..0a8eec5 100644 --- a/src/v1_TeslaMateAPICarsCommand.go +++ b/src/v1_TeslaMateAPICarsCommand.go @@ -63,8 +63,8 @@ func TeslaMateAPICarsCommandV1(c *gin.Context) { // it would be nice to find a way to retrieve api.Group command = (c.Request.RequestURI[len("/api/v1/cars/"+ParamCarID):]) - if !contains(allowList, command) { log.Print("[warning] TeslaMateAPICarsCommand command: " + command + " not allowed") + if !checkArrayContainsString(allowList, command) { c.JSON(http.StatusUnauthorized, gin.H{"error": "unauthroized"}) return } @@ -141,15 +141,6 @@ func TeslaMateAPICarsCommandV1(c *gin.Context) { c.JSON(resp.StatusCode, jsonData) } -func contains(s []string, e string) bool { - for _, a := range s { - if a == e { - return true - } - } - return false -} - func getCommandToken() string { // get token from environment variable COMMAND_TOKEN token := getEnv("COMMAND_TOKEN", "") diff --git a/src/webserver.go b/src/webserver.go index d626cdc..a92f9cd 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -80,8 +80,8 @@ func main() { v1.GET("/cars/:CarID/charges/:ChargeID", TeslaMateAPICarsChargesDetailsV1) // v1 /api/v1/cars/:CarID/command endpoints - v1.GET("/cars/:CarID/commands", TeslaMateAPICarsCommandV1) - v1.POST("/cars/:CarID/commands/:Command", TeslaMateAPICarsCommandV1) + v1.GET("/cars/:CarID/command", TeslaMateAPICarsCommandV1) + v1.POST("/cars/:CarID/command/:Command", TeslaMateAPICarsCommandV1) // v1 /api/v1/cars/:CarID/drives endpoints v1.GET("/cars/:CarID/drives", TeslaMateAPICarsDrivesV1) @@ -303,3 +303,13 @@ func fahrenheitToCelsiusNilSupport(f NullFloat64) NullFloat64 { f.Float64 = ((f.Float64 - 32) * 5 / 9) return (f) } + +// checkArrayContainsString func - check if string is inside stringarray +func checkArrayContainsString(s []string, e string) bool { + for _, a := range s { + if a == e { + return true + } + } + return false +}