This commit is contained in:
Pavel 2024-01-23 02:02:32 +03:00
parent 81431e0d17
commit 4f4194c7b6
2 changed files with 28 additions and 14 deletions

@ -65,7 +65,7 @@ func (c *Controller) PublishPrivileges() error {
found = false found = false
} }
return c.updatePrivileges() return c.updatePrivileges(old)
} }
// getActualPrivileges возвращает текущие привилегии из сервиса. // getActualPrivileges возвращает текущие привилегии из сервиса.
@ -86,12 +86,25 @@ func (c *Controller) getActualPrivileges() ([]Privilege, error) {
} }
// updatePrivileges обновляет привилегии в сервисе. // updatePrivileges обновляет привилегии в сервисе.
func (c *Controller) updatePrivileges() error { func (c *Controller) updatePrivileges(oldPrivileges []Privilege) error {
_, _, err := c.fiberClient.Put(c.client.URL + "/privilege/many").JSON(map[string][]Privilege{ newPrivilegesMap := make(map[string]Privilege)
"privileges": c.client.Privileges, 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() }).Bytes()
if err != nil { if errs != nil {
return err[0] return errs[0]
} }
return nil return nil

@ -84,8 +84,8 @@ func TestUpdatePrivileges(t *testing.T) {
ServiceKey: "test", ServiceKey: "test",
Description: "This is a test 100 генераций", Description: "This is a test 100 генераций",
Type: "count", Type: "count",
Price: 1000,
Value: "100", Value: "100",
Price: 10.0,
Amount: 5, Amount: 5,
IsDeleted: false, IsDeleted: false,
CreatedAt: time.Now(), CreatedAt: time.Now(),
@ -98,7 +98,9 @@ func TestUpdatePrivileges(t *testing.T) {
fiberClient := fiber.Client{} fiberClient := fiber.Client{}
controller := NewPrivilege(client, &fiberClient) controller := NewPrivilege(client, &fiberClient)
err := controller.updatePrivileges() privileges, err := controller.getActualPrivileges()
err = controller.updatePrivileges(privileges)
assert.Nil(t, err) assert.Nil(t, err)
} }
@ -139,14 +141,13 @@ func TestRemovePrivilege(t *testing.T) {
ServiceName: "key", ServiceName: "key",
Privileges: []Privilege{ Privileges: []Privilege{
{ {
ID: "1", ID: "2",
PrivilegeID: "test1", PrivilegeID: "64e60d28eac51324f2296753",
Name: "Test1", Name: "100 генераций",
ServiceKey: "key", ServiceKey: "test",
Description: "This is a test", Description: "This is a test 100 генераций",
Type: "count", Type: "count",
Value: "100", Value: "100",
Price: 10.0,
Amount: 5, Amount: 5,
IsDeleted: false, IsDeleted: false,
CreatedAt: time.Now(), CreatedAt: time.Now(),