From 2207dc5afda8a56dd02b919520b950cb617249d8 Mon Sep 17 00:00:00 2001 From: Nikita Tokarchuk Date: Thu, 16 May 2019 13:56:55 +0200 Subject: [PATCH] Add resetter interface --- mongox/common.go | 5 +++++ mongox/common/loadmany.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/mongox/common.go b/mongox/common.go index faf4849..7bb1b5b 100644 --- a/mongox/common.go +++ b/mongox/common.go @@ -19,6 +19,11 @@ type Loader interface { Load(db *Database, filters ...interface{}) error } +// Resetter is an interface for documenta that can be resetted +type Resetter interface { + Reset() +} + // BaseObjectID is an interface for documents that have objectId type for the _id field type BaseObjectID interface { GetID() primitive.ObjectID diff --git a/mongox/common/loadmany.go b/mongox/common/loadmany.go index d568b7a..8b2f30e 100644 --- a/mongox/common/loadmany.go +++ b/mongox/common/loadmany.go @@ -25,6 +25,11 @@ func (l *ManyLoader) Get() error { return errors.NotFoundErrorf("%s", mongo.ErrNoDocuments) } + resettable, canReset := l.target.(mongox.Resetter) + if canReset { + resettable.Reset() + } + err := l.Decode(l.target) if err != nil { return errors.InternalErrorf("can't decode desult: %s", err)