aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr <r@freesoftwareextremist.com>2019-12-21 09:56:18 +0000
committerr <r@freesoftwareextremist.com>2019-12-21 10:56:40 +0000
commite73eb1162ab4ecdb6bbf1337c8c0ef95dbe0e2bf (patch)
treeb6350d31333acc58d763218c8f1cd1098755b05a
parenta25d64a0785c3da4bedfa69aefb78a28369b6012 (diff)
downloadbloat-e73eb1162ab4ecdb6bbf1337c8c0ef95dbe0e2bf.tar.gz
bloat-e73eb1162ab4ecdb6bbf1337c8c0ef95dbe0e2bf.zip
Use json format for app and session repo
-rw-r--r--model/app.go27
-rw-r--r--model/session.go30
-rw-r--r--repository/appRepository.go12
-rw-r--r--repository/sessionRepository.go21
4 files changed, 34 insertions, 56 deletions
diff --git a/model/app.go b/model/app.go
index 89d656d..7abc8ec 100644
--- a/model/app.go
+++ b/model/app.go
@@ -2,7 +2,6 @@ package model
import (
"errors"
- "strings"
)
var (
@@ -10,31 +9,13 @@ var (
)
type App struct {
- InstanceDomain string
- InstanceURL string
- ClientID string
- ClientSecret string
+ InstanceDomain string `json:"instance_domain"`
+ InstanceURL string `json:"instance_url"`
+ ClientID string `json:"client_id"`
+ ClientSecret string `json:"client_secret"`
}
type AppRepository interface {
Add(app App) (err error)
Get(instanceDomain string) (app App, err error)
}
-
-func (a *App) Marshal() []byte {
- str := a.InstanceURL + "\n" + a.ClientID + "\n" + a.ClientSecret
- return []byte(str)
-}
-
-func (a *App) Unmarshal(instanceDomain string, data []byte) error {
- str := string(data)
- lines := strings.Split(str, "\n")
- if len(lines) != 3 {
- return errors.New("invalid data")
- }
- a.InstanceDomain = instanceDomain
- a.InstanceURL = lines[0]
- a.ClientID = lines[1]
- a.ClientSecret = lines[2]
- return nil
-}
diff --git a/model/session.go b/model/session.go
index 94f527b..af9e9e2 100644
--- a/model/session.go
+++ b/model/session.go
@@ -2,7 +2,6 @@ package model
import (
"errors"
- "strings"
)
var (
@@ -10,9 +9,9 @@ var (
)
type Session struct {
- ID string
- InstanceDomain string
- AccessToken string
+ ID string `json:"id"`
+ InstanceDomain string `json:"instance_domain"`
+ AccessToken string `json:"access_token"`
}
type SessionRepository interface {
@@ -24,26 +23,3 @@ type SessionRepository interface {
func (s Session) IsLoggedIn() bool {
return len(s.AccessToken) > 0
}
-
-func (s *Session) Marshal() []byte {
- str := s.InstanceDomain + "\n" + s.AccessToken
- return []byte(str)
-}
-
-func (s *Session) Unmarshal(id string, data []byte) error {
- str := string(data)
- lines := strings.Split(str, "\n")
-
- size := len(lines)
- if size == 1 {
- s.InstanceDomain = lines[0]
- } else if size == 2 {
- s.InstanceDomain = lines[0]
- s.AccessToken = lines[1]
- } else {
- return errors.New("invalid data")
- }
-
- s.ID = id
- return nil
-}
diff --git a/repository/appRepository.go b/repository/appRepository.go
index 00ef64d..cfa7950 100644
--- a/repository/appRepository.go
+++ b/repository/appRepository.go
@@ -1,6 +1,7 @@
package repository
import (
+ "encoding/json"
"web/kv"
"web/model"
)
@@ -16,7 +17,11 @@ func NewAppRepository(db *kv.Database) *appRepository {
}
func (repo *appRepository) Add(a model.App) (err error) {
- err = repo.db.Set(a.InstanceDomain, a.Marshal())
+ data, err := json.Marshal(a)
+ if err != nil {
+ return
+ }
+ err = repo.db.Set(a.InstanceDomain, data)
return
}
@@ -27,7 +32,10 @@ func (repo *appRepository) Get(instanceDomain string) (a model.App, err error) {
return
}
- err = a.Unmarshal(instanceDomain, data)
+ err = json.Unmarshal(data, &a)
+ if err != nil {
+ return
+ }
return
}
diff --git a/repository/sessionRepository.go b/repository/sessionRepository.go
index 6c26313..d5f399a 100644
--- a/repository/sessionRepository.go
+++ b/repository/sessionRepository.go
@@ -1,6 +1,7 @@
package repository
import (
+ "encoding/json"
"web/kv"
"web/model"
)
@@ -16,7 +17,11 @@ func NewSessionRepository(db *kv.Database) *sessionRepository {
}
func (repo *sessionRepository) Add(s model.Session) (err error) {
- err = repo.db.Set(s.ID, s.Marshal())
+ data, err := json.Marshal(s)
+ if err != nil {
+ return
+ }
+ err = repo.db.Set(s.ID, data)
return
}
@@ -27,14 +32,19 @@ func (repo *sessionRepository) Update(id string, accessToken string) (err error)
}
var s model.Session
- err = s.Unmarshal(id, data)
+ err = json.Unmarshal(data, &s)
if err != nil {
return
}
s.AccessToken = accessToken
- return repo.db.Set(id, s.Marshal())
+ data, err = json.Marshal(s)
+ if err != nil {
+ return
+ }
+
+ return repo.db.Set(id, data)
}
func (repo *sessionRepository) Get(id string) (s model.Session, err error) {
@@ -44,7 +54,10 @@ func (repo *sessionRepository) Get(id string) (s model.Session, err error) {
return
}
- err = s.Unmarshal(id, data)
+ err = json.Unmarshal(data, &s)
+ if err != nil {
+ return
+ }
return
}