From b85e202511ea821c773f5eeb305ff71f040fc098 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Wed, 18 Apr 2012 22:07:52 -0400 Subject: tweaks, basic loading --- store.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'store.go') diff --git a/store.go b/store.go index d08deaa..343cd9e 100644 --- a/store.go +++ b/store.go @@ -129,8 +129,21 @@ func (jfbs *JSONFileBomStore) listBomsForUser(user ShortName) ([]BomStub, error) } func (jfbs *JSONFileBomStore) Persist(bs *BomStub, b *Bom, version ShortName) error { + + if err := bs.Validate(); err != nil { + return err + } + if err := b.Validate(); err != nil { + return err + } + b_fpath := jfbs.Rootfpath + "/" + string(bs.Owner) + "/" + string(bs.Name) + "/" + string(version) + ".json" bs_fpath := jfbs.Rootfpath + "/" + string(bs.Owner) + "/" + string(bs.Name) + "/_meta.json" + + if f, err := os.Open(b_fpath); err == nil { + f.Close() + return Error("bom with same owner, name, and version already exists") + } if err := writeJsonBomStub(bs_fpath, bs); err != nil { log.Fatal(err) } -- cgit v1.2.3