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
Branches release/0.26
Tags v0.26.1
No related merge requests found
...@@ -35,7 +35,7 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId ...@@ -35,7 +35,7 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
value, e := m.cache.Get(makeKey(spaceId, envId, collectionId, itemId)) value, e := m.cache.Get(makeKey(spaceId, envId, collectionId, itemId))
if e == nil { 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...) itm, err = m.Items.Get(ctx, spaceId, envId, collectionId, itemId, options...)
if err == nil { if err == nil {
...@@ -43,12 +43,14 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId ...@@ -43,12 +43,14 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
if err != nil { if err != nil {
return nil, err 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 { 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) { 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 ...@@ -59,11 +61,11 @@ func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, optio
if err != nil { if err != nil {
return err return err
} }
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err return err
...@@ -77,11 +79,11 @@ func (m cachingMiddleware) Delete(ctx context.Context, del *service.Item, option ...@@ -77,11 +79,11 @@ func (m cachingMiddleware) Delete(ctx context.Context, del *service.Item, option
if err != nil { if err != nil {
return err return err
} }
m.cache.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)) _ = m.cachePublished.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.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)) _ = 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 ...@@ -96,11 +98,11 @@ func (m cachingMiddleware) Publish(ctx context.Context, item *service.Item, opti
if err != nil { if err != nil {
return err return err
} }
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err return err
...@@ -114,11 +116,11 @@ func (m cachingMiddleware) Unpublish(ctx context.Context, item *service.Item, op ...@@ -114,11 +116,11 @@ func (m cachingMiddleware) Unpublish(ctx context.Context, item *service.Item, op
if err != nil { if err != nil {
return err return err
} }
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err return err
...@@ -132,7 +134,7 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col ...@@ -132,7 +134,7 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
if e == nil { if e == nil {
value := val.(map[string]*service.Item) value := val.(map[string]*service.Item)
if i, ok := value[opts.LocaleID]; ok { 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 ...@@ -148,13 +150,14 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
value = val.(map[string]*service.Item) value = val.(map[string]*service.Item)
} }
value[opts.LocaleID] = itm 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 { 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) { 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 ...@@ -165,11 +168,11 @@ func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, opti
if err != nil { if err != nil {
return err return err
} }
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.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)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err 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