Merge branch 'master' of https://git.freesoftwareextremist.com/bloat
[bloat] / repo / appRepo.go
1 package repo
2
3 import (
4         "encoding/json"
5
6         "bloat/kv"
7         "bloat/model"
8 )
9
10 type appRepo struct {
11         db *kv.Database
12 }
13
14 func NewAppRepo(db *kv.Database) *appRepo {
15         return &appRepo{
16                 db: db,
17         }
18 }
19
20 func (repo *appRepo) Add(a model.App) (err error) {
21         data, err := json.Marshal(a)
22         if err != nil {
23                 return
24         }
25         err = repo.db.Set(a.InstanceDomain, data)
26         return
27 }
28
29 func (repo *appRepo) Get(instanceDomain string) (a model.App, err error) {
30         data, err := repo.db.Get(instanceDomain)
31         if err != nil {
32                 err = model.ErrAppNotFound
33                 return
34         }
35
36         err = json.Unmarshal(data, &a)
37         if err != nil {
38                 return
39         }
40
41         return
42 }