Skip to content
Snippets Groups Projects
Commit 83fa22b0 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Merge branch 'cherry-pick-cf99f709' into 'release/0.26'

Merge branch 'hotfix/PRXS-2697-FixItemsCache' into 'master'

See merge request perxis/perxis-go!262
parents b9e2677b 0ee06b70
No related branches found
No related tags found
No related merge requests found
......@@ -35,7 +35,7 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
value, e := m.cache.Get(makeKey(spaceId, envId, collectionId, itemId))
if e == nil {
return value.(*service.Item), err
return value.(*service.Item).Clone(), err
}
itm, err = m.Items.Get(ctx, spaceId, envId, collectionId, itemId, options...)
if err == nil {
......@@ -43,12 +43,14 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
if err != nil {
return nil, err
}
m.cache.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), itm)
_ = m.cache.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), itm)
for _, al := range env.Aliases {
m.cache.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), itm)
_ = m.cache.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), itm)
}
return itm.Clone(), err
}
return itm, err
return nil, err
}
func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, options ...*service.UpdateOptions) (err error) {
......@@ -59,11 +61,11 @@ func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, optio
if err != nil {
return err
}
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
}
}
return err
......@@ -77,11 +79,11 @@ func (m cachingMiddleware) Delete(ctx context.Context, del *service.Item, option
if err != nil {
return err
}
m.cache.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
m.cachePublished.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
_ = m.cache.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
_ = m.cachePublished.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
for _, al := range env.Aliases {
m.cache.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
m.cachePublished.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
_ = m.cache.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
_ = m.cachePublished.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
}
}
......@@ -96,11 +98,11 @@ func (m cachingMiddleware) Publish(ctx context.Context, item *service.Item, opti
if err != nil {
return err
}
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
}
}
return err
......@@ -114,11 +116,11 @@ func (m cachingMiddleware) Unpublish(ctx context.Context, item *service.Item, op
if err != nil {
return err
}
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
}
}
return err
......@@ -132,7 +134,7 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
if e == nil {
value := val.(map[string]*service.Item)
if i, ok := value[opts.LocaleID]; ok {
return i, nil
return i.Clone(), nil
}
}
......@@ -148,13 +150,14 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
value = val.(map[string]*service.Item)
}
value[opts.LocaleID] = itm
m.cachePublished.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), value)
_ = m.cachePublished.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), value)
for _, al := range env.Aliases {
m.cachePublished.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), value)
_ = m.cachePublished.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), value)
}
return itm.Clone(), err
}
return itm, err
return nil, err
}
func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, options ...*service.ArchiveOptions) (err error) {
......@@ -165,11 +168,11 @@ func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, opti
if err != nil {
return err
}
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
_ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
}
}
return err
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment