From 4f4194c7b68d803378bc8365f98f5ecca8bf9baf Mon Sep 17 00:00:00 2001 From: Pavel Date: Tue, 23 Jan 2024 02:02:32 +0300 Subject: [PATCH] refactor --- privilege/privilege.go | 25 +++++++++++++++++++------ privilege/privilege_test.go | 17 +++++++++-------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/privilege/privilege.go b/privilege/privilege.go index ca53036..3c9552e 100644 --- a/privilege/privilege.go +++ b/privilege/privilege.go @@ -65,7 +65,7 @@ func (c *Controller) PublishPrivileges() error { found = false } - return c.updatePrivileges() + return c.updatePrivileges(old) } // getActualPrivileges возвращает текущие привилегии из сервиса. @@ -86,12 +86,25 @@ func (c *Controller) getActualPrivileges() ([]Privilege, error) { } // updatePrivileges обновляет привилегии в сервисе. -func (c *Controller) updatePrivileges() error { - _, _, err := c.fiberClient.Put(c.client.URL + "/privilege/many").JSON(map[string][]Privilege{ - "privileges": c.client.Privileges, +func (c *Controller) updatePrivileges(oldPrivileges []Privilege) error { + newPrivilegesMap := make(map[string]Privilege) + for _, newPriv := range c.client.Privileges { + newPrivilegesMap[newPriv.PrivilegeID] = newPriv + } + + for i, oldPriv := range oldPrivileges { + if newPriv, exists := newPrivilegesMap[oldPriv.PrivilegeID]; exists { + if newPriv.Price != 0 { + oldPrivileges[i].Price = newPriv.Price + } + } + } + + _, _, errs := c.fiberClient.Put(c.client.URL + "/privilege/many").JSON(map[string][]Privilege{ + "privileges": oldPrivileges, }).Bytes() - if err != nil { - return err[0] + if errs != nil { + return errs[0] } return nil diff --git a/privilege/privilege_test.go b/privilege/privilege_test.go index e14e2c2..f4cd675 100644 --- a/privilege/privilege_test.go +++ b/privilege/privilege_test.go @@ -84,8 +84,8 @@ func TestUpdatePrivileges(t *testing.T) { ServiceKey: "test", Description: "This is a test 100 генераций", Type: "count", + Price: 1000, Value: "100", - Price: 10.0, Amount: 5, IsDeleted: false, CreatedAt: time.Now(), @@ -98,7 +98,9 @@ func TestUpdatePrivileges(t *testing.T) { fiberClient := fiber.Client{} controller := NewPrivilege(client, &fiberClient) - err := controller.updatePrivileges() + privileges, err := controller.getActualPrivileges() + + err = controller.updatePrivileges(privileges) assert.Nil(t, err) } @@ -139,14 +141,13 @@ func TestRemovePrivilege(t *testing.T) { ServiceName: "key", Privileges: []Privilege{ { - ID: "1", - PrivilegeID: "test1", - Name: "Test1", - ServiceKey: "key", - Description: "This is a test", + ID: "2", + PrivilegeID: "64e60d28eac51324f2296753", + Name: "100 генераций", + ServiceKey: "test", + Description: "This is a test 100 генераций", Type: "count", Value: "100", - Price: 10.0, Amount: 5, IsDeleted: false, CreatedAt: time.Now(),