From a7e66df5c01b5b51d5f49be48d432257e6bcb512 Mon Sep 17 00:00:00 2001 From: Bartosz Chanowski Date: Fri, 30 Sep 2022 12:11:27 +0200 Subject: [PATCH] Fixed symbols with spaces issue --- README.md | 4 ++-- tmeapi.go | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 30efc9e..b63c8c3 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ package main import ( "fmt" - "io/ioutil" + "io" "log" "net/url" "github.com/tme-dev/api-client-go" @@ -29,7 +29,7 @@ func main() { if err != nil { log.Fatal(err) } - result, err := ioutil.ReadAll(res.Body) + result, err := io.ReadAll(res.Body) res.Body.Close() if err != nil { log.Fatal(err) diff --git a/tmeapi.go b/tmeapi.go index 83da0aa..8bc4147 100644 --- a/tmeapi.go +++ b/tmeapi.go @@ -1,34 +1,35 @@ package tmeapi import ( - "strings" - "net/url" "crypto/hmac" "crypto/sha1" "encoding/base64" "net/http" + "net/url" + "strings" ) type TMEApi struct { - Token string - Secret string + Token string + Secret string } func Client(token string, secret string) *TMEApi { - return &TMEApi{token, secret} + return &TMEApi{token, secret} } func (tmeApi TMEApi) Request(requestUrl string, formValues url.Values) (*http.Response, error) { - formValues.Add("Token", tmeApi.Token) - formValues.Add("ApiSignature", CalculateSignature("POST", requestUrl, formValues, tmeApi.Secret)) + formValues.Add("Token", tmeApi.Token) + formValues.Add("ApiSignature", CalculateSignature("POST", requestUrl, formValues, tmeApi.Secret)) - return http.PostForm(requestUrl, formValues) + return http.PostForm(requestUrl, formValues) } func CalculateSignature(method string, requestUrl string, urlValues url.Values, secret string) string { - signatureBase := strings.Join([]string{method, url.QueryEscape(requestUrl), url.QueryEscape(urlValues.Encode())}, "&") - mac := hmac.New(sha1.New, []byte(secret)) - mac.Write([]byte(signatureBase)) + signatureBase := strings.Join([]string{method, url.QueryEscape(requestUrl), url.QueryEscape(urlValues.Encode())}, "&") + signatureBase = strings.ReplaceAll(signatureBase, "%2B", "%2520") + mac := hmac.New(sha1.New, []byte(secret)) + mac.Write([]byte(signatureBase)) - return base64.StdEncoding.EncodeToString([]byte(mac.Sum(nil))) + return base64.StdEncoding.EncodeToString([]byte(mac.Sum(nil))) }