diff options
| -rw-r--r-- | model/app.go | 27 | ||||
| -rw-r--r-- | model/session.go | 30 | ||||
| -rw-r--r-- | repository/appRepository.go | 12 | ||||
| -rw-r--r-- | repository/sessionRepository.go | 21 | 
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  } | 
