From 8302bdbff41d6ded468ce7a6f31fda606dde2712 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Mon, 30 Sep 2019 11:39:51 +0200 Subject: [PATCH] Move ref. resolve at the very end of page imp. --- compose/importer/page.go | 44 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/compose/importer/page.go b/compose/importer/page.go index b4066286e..c3d3b167d 100644 --- a/compose/importer/page.go +++ b/compose/importer/page.go @@ -265,8 +265,28 @@ func (pImp *Page) Get(handle string) (*types.Page, error) { return pImp.set.FindByHandle(handle), nil } -func (pImp *Page) Store(ctx context.Context, k pageKeeper) error { - return pImp.storeChildren(ctx, "", k) +func (pImp *Page) Store(ctx context.Context, k pageKeeper) (err error) { + if err = pImp.storeChildren(ctx, "", k); err != nil { + return + } + + // We do that at the end - and save all pages with resolved references + // + // Many because internal page referencing from page blocks + var refs uint + for _, page := range pImp.set { + if refs, err = pImp.resolveRefs(page); err != nil { + return + } else if refs > 0 { + // make sure we do not get stale-data error + page.UpdatedAt = nil + if _, err = k.Update(page); err != nil { + return errors.Wrap(err, "could not update resolved refs") + } + } + } + + return } func (pImp *Page) storeChildren(ctx context.Context, parent string, k pageKeeper) (err error) { @@ -322,26 +342,6 @@ func (pImp *Page) storeChildren(ctx context.Context, parent string, k pageKeeper } } - // We do that at the end - and save all pages with resolved references - // - // Many because internal page referencing from page blocks - var refs uint - for _, child := range children { - if page, err = pImp.Get(child); err != nil { - return - } - - if refs, err = pImp.resolveRefs(page); err != nil { - return - } else if refs > 0 { - // make sure we do not get stale-data error - page.UpdatedAt = nil - if _, err = k.Update(page); err != nil { - return errors.Wrap(err, "could not update resolved refs") - } - } - } - return }