From aeeddd7967470076ad389dcaa7c48a2bde7c4a87 Mon Sep 17 00:00:00 2001 From: sophia Date: Fri, 5 Nov 2021 13:11:03 -0500 Subject: [PATCH] Add comparision functions --- internal/core/box.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/internal/core/box.go b/internal/core/box.go index 11cdfcdb3..a5b383cba 100644 --- a/internal/core/box.go +++ b/internal/core/box.go @@ -1,6 +1,7 @@ package core import ( + "errors" "os" "time" @@ -19,6 +20,7 @@ type Box struct { } func (b *Box) loadMetadata() (metadata core.BoxMetadata) { + // TODO: need box metadata implementation return } @@ -127,6 +129,37 @@ func (b *Box) Version() (version string, err error) { return b.box.Version, nil } +func (b *Box) GreaterThanOrEqual(box core.Box) (bool, error) { + name, err := box.Name() + if err != nil { + return false, err + } + version, err := box.Version() + if err != nil { + return false, err + } + provider, err := box.Provider() + if err != nil { + return false, err + } + + if b.box.Name == name && b.box.Provider == provider { + if b.box.Version >= version { + return true, nil + } + return false, nil + } + return false, errors.New("Box name and provider does not match, can't compare") +} + +func (b *Box) LessThan(box core.Box) (bool, error) { + gte, err := b.GreaterThanOrEqual(box) + if err != nil { + return false, err + } + return !gte, nil +} + func (b *Box) Save() error { // TODO: return nil