aboutsummaryrefslogtreecommitdiff
path: root/repo/appRepo.go
diff options
context:
space:
mode:
Diffstat (limited to 'repo/appRepo.go')
-rw-r--r--repo/appRepo.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/repo/appRepo.go b/repo/appRepo.go
new file mode 100644
index 0000000..6338c4a
--- /dev/null
+++ b/repo/appRepo.go
@@ -0,0 +1,42 @@
+package repo
+
+import (
+ "encoding/json"
+
+ "bloat/kv"
+ "bloat/model"
+)
+
+type appRepo struct {
+ db *kv.Database
+}
+
+func NewAppRepo(db *kv.Database) *appRepo {
+ return &appRepo{
+ db: db,
+ }
+}
+
+func (repo *appRepo) Add(a model.App) (err error) {
+ data, err := json.Marshal(a)
+ if err != nil {
+ return
+ }
+ err = repo.db.Set(a.InstanceDomain, data)
+ return
+}
+
+func (repo *appRepo) Get(instanceDomain string) (a model.App, err error) {
+ data, err := repo.db.Get(instanceDomain)
+ if err != nil {
+ err = model.ErrAppNotFound
+ return
+ }
+
+ err = json.Unmarshal(data, &a)
+ if err != nil {
+ return
+ }
+
+ return
+}