Refactor everything
[bloat] / repo / sessionRepo.go
1 package repo
2
3 import (
4         "encoding/json"
5
6         "bloat/kv"
7         "bloat/model"
8 )
9
10 type sessionRepo struct {
11         db *kv.Database
12 }
13
14 func NewSessionRepo(db *kv.Database) *sessionRepo {
15         return &sessionRepo{
16                 db: db,
17         }
18 }
19
20 func (repo *sessionRepo) Add(s model.Session) (err error) {
21         data, err := json.Marshal(s)
22         if err != nil {
23                 return
24         }
25         err = repo.db.Set(s.ID, data)
26         return
27 }
28
29 func (repo *sessionRepo) Get(id string) (s model.Session, err error) {
30         data, err := repo.db.Get(id)
31         if err != nil {
32                 err = model.ErrSessionNotFound
33                 return
34         }
35
36         err = json.Unmarshal(data, &s)
37         if err != nil {
38                 return
39         }
40
41         return
42 }