From 42d1abaae42e1fd18728f9fe120e6c58c1c25ba4 Mon Sep 17 00:00:00 2001 From: petruki <31597636+petruki@users.noreply.github.com> Date: Fri, 18 Oct 2024 23:24:19 -0700 Subject: [PATCH] Fixed update account tokens moving domainId to param query --- .../postman/Switcher GitOps.postman_collection.json | 8 +++++--- resources/swagger.yaml | 7 ++----- src/controller/account.go | 7 ++++--- src/controller/account_test.go | 11 ++++------- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/resources/postman/Switcher GitOps.postman_collection.json b/resources/postman/Switcher GitOps.postman_collection.json index d5a1e2d..234a595 100644 --- a/resources/postman/Switcher GitOps.postman_collection.json +++ b/resources/postman/Switcher GitOps.postman_collection.json @@ -170,7 +170,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n\t\"domainId\": \"{{domain_id}}\",\r\n\t\"token\": \"{{github_pat}}\",\r\n \"environments\": [\r\n \"default\",\r\n \"staging\"\r\n ]\r\n}", + "raw": "{\r\n\t\"token\": \"{{github_pat}}\",\r\n \"environments\": [\r\n \"default\",\r\n \"staging\"\r\n ]\r\n}", "options": { "raw": { "language": "json" @@ -178,12 +178,14 @@ } }, "url": { - "raw": "{{url}}/account", + "raw": "{{url}}/account/tokens/{{domain_id}}", "host": [ "{{url}}" ], "path": [ - "account" + "account", + "tokens", + "{{domain_id}}" ] } }, diff --git a/resources/swagger.yaml b/resources/swagger.yaml index 24205b2..7c7a802 100644 --- a/resources/swagger.yaml +++ b/resources/swagger.yaml @@ -171,6 +171,7 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /account/tokens/{domainId}: put: tags: - Account API @@ -210,7 +211,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: '#/components/schemas/ErrorResponse' /account/{domainId}/{environment}: get: tags: @@ -407,10 +408,6 @@ components: token: type: string description: Git token - domainId: - type: string - format: uuid - description: Domain ID environments: type: array items: diff --git a/src/controller/account.go b/src/controller/account.go index 5b1fc70..dd15448 100644 --- a/src/controller/account.go +++ b/src/controller/account.go @@ -24,7 +24,6 @@ type AccountController struct { type AccountTokensRequest struct { Token string `json:"token"` - DomainId string `json:"domainId"` Environments []string `json:"environments"` } @@ -50,7 +49,7 @@ func (controller *AccountController) RegisterRoutes(r *mux.Router) http.Handler ValidateToken(http.HandlerFunc(controller.CreateAccountHandler))).Methods(http.MethodPost) r.NewRoute().Path(controller.routeAccountPath).Name("UpdateAccount").Handler( ValidateToken(http.HandlerFunc(controller.UpdateAccountHandler))).Methods(http.MethodPut) - r.NewRoute().Path(controller.routeAccountPath + "/{domainId}").Name("UpdateAccountTokens").Handler( + r.NewRoute().Path(controller.routeAccountPath + "/tokens/{domainId}").Name("UpdateAccountTokens").Handler( ValidateToken(http.HandlerFunc(controller.UpdateAccountTokensHandler))).Methods(http.MethodPut) r.NewRoute().Path(controller.routeAccountPath + "/{domainId}").Name("GelAllAccountsByDomainId").Handler( ValidateToken(http.HandlerFunc(controller.FetchAllAccountsByDomainIdHandler))).Methods(http.MethodGet) @@ -150,6 +149,8 @@ func (controller *AccountController) UpdateAccountHandler(w http.ResponseWriter, } func (controller *AccountController) UpdateAccountTokensHandler(w http.ResponseWriter, r *http.Request) { + domainId := mux.Vars(r)["domainId"] + var accountTokensRequest AccountTokensRequest err := json.NewDecoder(r.Body).Decode(&accountTokensRequest) if err != nil { @@ -169,7 +170,7 @@ func (controller *AccountController) UpdateAccountTokensHandler(w http.ResponseW // Update account tokens for _, environment := range accountTokensRequest.Environments { - account, err := controller.accountRepository.FetchByDomainIdEnvironment(accountTokensRequest.DomainId, environment) + account, err := controller.accountRepository.FetchByDomainIdEnvironment(domainId, environment) if err != nil { utils.LogError("Error fetching account: %s", err.Error()) utils.ResponseJSON(w, ErrorResponse{Error: "Error fetching account"}, http.StatusNotFound) diff --git a/src/controller/account_test.go b/src/controller/account_test.go index 5479422..68c98b7 100644 --- a/src/controller/account_test.go +++ b/src/controller/account_test.go @@ -244,12 +244,11 @@ func TestUpdateAccountTokensHandler(t *testing.T) { // Test payload, _ := json.Marshal(AccountTokensRequest{ - DomainId: account1.Domain.ID, Environments: []string{account1.Environment, account2.Environment}, Token: "new-token", }) - req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/"+account1.Domain.ID, bytes.NewBuffer(payload)) + req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/tokens/"+account1.Domain.ID, bytes.NewBuffer(payload)) response := executeRequest(req, r, token) // Assert @@ -271,12 +270,11 @@ func TestUpdateAccountTokensHandler(t *testing.T) { t.Run("Should not update account tokens - token is required", func(t *testing.T) { // Test payload, _ := json.Marshal(AccountTokensRequest{ - DomainId: "123-controller-update-account-tokens", Environments: []string{"default"}, Token: "", }) - req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/123-controller-update-account-tokens", bytes.NewBuffer(payload)) + req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/tokens/123-controller-update-account-tokens", bytes.NewBuffer(payload)) response := executeRequest(req, r, token) // Assert @@ -287,7 +285,7 @@ func TestUpdateAccountTokensHandler(t *testing.T) { t.Run("Should not update account tokens - invalid request", func(t *testing.T) { // Test payload := []byte("") - req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/invalid", bytes.NewBuffer(payload)) + req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/tokens/invalid", bytes.NewBuffer(payload)) response := executeRequest(req, r, token) // Assert @@ -298,12 +296,11 @@ func TestUpdateAccountTokensHandler(t *testing.T) { t.Run("Should not update account tokens - not found", func(t *testing.T) { // Test payload, _ := json.Marshal(AccountTokensRequest{ - DomainId: "not-found", Environments: []string{"default"}, Token: "new-token", }) - req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/not-found", bytes.NewBuffer(payload)) + req, _ := http.NewRequest(http.MethodPut, accountController.routeAccountPath+"/tokens/not-found", bytes.NewBuffer(payload)) response := executeRequest(req, r, token) // Assert