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
}
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

@ -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(),