mirror of
https://git.freesoftwareextremist.com/bloat
synced 2024-11-14 10:14:12 +00:00
40 lines
757 B
Go
40 lines
757 B
Go
package model
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
var (
|
|
ErrAppNotFound = errors.New("app not found")
|
|
)
|
|
|
|
type App struct {
|
|
InstanceDomain string
|
|
InstanceURL string
|
|
ClientID string
|
|
ClientSecret string
|
|
}
|
|
|
|
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
|
|
}
|