Skip to content
This repository was archived by the owner on Sep 2, 2024. It is now read-only.

Commit 4f719a5

Browse files
committed
refactored the model to have clearer names and easier function names in Persister interface
1 parent 92bb5db commit 4f719a5

40 files changed

+342
-339
lines changed

account.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func (a *accounts) create(w http.ResponseWriter, r *http.Request) {
102102

103103
// create the account
104104

105-
cust := model.Customer{
105+
cust := model.Tenant{
106106
ID: "cust-local-dev", // easier for CLI/memory flow
107107
Email: email,
108108
StripeID: stripeCustomerID,
@@ -112,7 +112,7 @@ func (a *accounts) create(w http.ResponseWriter, r *http.Request) {
112112
Created: time.Now(),
113113
}
114114

115-
cust, err = backend.DB.CreateCustomer(cust)
115+
cust, err = backend.DB.CreateTenant(cust)
116116
if err != nil {
117117
http.Error(w, err.Error(), http.StatusInternalServerError)
118118
return
@@ -137,15 +137,15 @@ func (a *accounts) create(w http.ResponseWriter, r *http.Request) {
137137
break
138138
}
139139

140-
base := model.BaseConfig{
140+
base := model.DatabaseConfig{
141141
ID: dbName, // easier for CLI/memory flow
142-
CustomerID: cust.ID,
142+
TenantID: cust.ID,
143143
Name: dbName,
144144
IsActive: active,
145145
AllowedDomain: []string{"localhost"},
146146
}
147147

148-
bc, err := backend.DB.CreateBase(base)
148+
bc, err := backend.DB.CreateDatabase(base)
149149
if err != nil {
150150
http.Error(w, err.Error(), http.StatusInternalServerError)
151151
return
@@ -178,7 +178,7 @@ func (a *accounts) create(w http.ResponseWriter, r *http.Request) {
178178
signUpURL = s.URL
179179
}
180180

181-
token, err := backend.DB.FindTokenByEmail(dbName, email)
181+
token, err := backend.DB.FindUserByEmail(dbName, email)
182182
if err != nil {
183183
http.Error(w, err.Error(), http.StatusInternalServerError)
184184
return
@@ -283,7 +283,7 @@ func (a *accounts) portal(w http.ResponseWriter, r *http.Request) {
283283
return
284284
}
285285

286-
url, err := getStripePortalURL(conf.CustomerID)
286+
url, err := getStripePortalURL(conf.TenantID)
287287
if err != nil {
288288
http.Error(w, err.Error(), http.StatusInternalServerError)
289289
return
@@ -293,7 +293,7 @@ func (a *accounts) portal(w http.ResponseWriter, r *http.Request) {
293293
}
294294

295295
func getStripePortalURL(customerID string) (string, error) {
296-
cus, err := backend.DB.FindAccount(customerID)
296+
cus, err := backend.DB.FindTenant(customerID)
297297
if err != nil {
298298
return "", err
299299
}

backend/backend.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828

2929
type Backend struct {
3030
User func(baseID string) User
31-
File func(model.Auth, model.BaseConfig) FileStore
31+
File func(model.Auth, model.DatabaseConfig) FileStore
3232
}
3333

3434
var (
@@ -97,7 +97,7 @@ func New(cfg config.AppConfig) Backend {
9797
sub.GetExecEnv = func(token string) (function.ExecutionEnvironment, error) {
9898
var exe function.ExecutionEnvironment
9999

100-
var conf model.BaseConfig
100+
var conf model.DatabaseConfig
101101
// for public websocket (experimental)
102102
if strings.HasPrefix(token, "__tmp__experimental_public") {
103103
pk := strings.Replace(token, "__tmp__experimental_public_", "", -1)
@@ -178,8 +178,8 @@ func findAuth(token string) model.Auth {
178178
return auth
179179
}
180180

181-
func findBase(baseID string) model.BaseConfig {
182-
var conf model.BaseConfig
181+
func findBase(baseID string) model.DatabaseConfig {
182+
var conf model.DatabaseConfig
183183
if err := Cache.GetTyped(baseID, &conf); err != nil {
184184
db, err := DB.FindDatabase(baseID)
185185
if err != nil {

backend/backend_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ var (
1818
adminAuth model.Auth
1919
jwtToken string
2020

21-
base model.BaseConfig
21+
base model.DatabaseConfig
2222
)
2323

2424
func TestMain(t *testing.M) {
@@ -52,24 +52,24 @@ func setup() {
5252
}
5353

5454
func createTenantAndDatabase() error {
55-
cus := model.Customer{
55+
cus := model.Tenant{
5656
Email: adminEmail,
5757
IsActive: true,
5858
Created: time.Now(),
5959
}
6060

61-
cus, err := backend.DB.CreateCustomer(cus)
61+
cus, err := backend.DB.CreateTenant(cus)
6262
if err != nil {
6363
return err
6464
}
6565

66-
base = model.BaseConfig{
67-
CustomerID: cus.ID,
68-
Name: "dev-memory-pk",
69-
IsActive: true,
66+
base = model.DatabaseConfig{
67+
TenantID: cus.ID,
68+
Name: "dev-memory-pk",
69+
IsActive: true,
7070
}
7171

72-
base, err = backend.DB.CreateBase(base)
72+
base, err = backend.DB.CreateDatabase(base)
7373
if err != nil {
7474
return err
7575
}
@@ -87,7 +87,7 @@ func createUser() error {
8787
return err
8888
}
8989

90-
tok := model.Token{
90+
tok := model.User{
9191
ID: userID,
9292
AccountID: id,
9393
Email: adminEmail,

backend/database.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
// Database enables all CRUD and querying operations on a type
1111
type Database[T any] struct {
1212
auth model.Auth
13-
conf model.BaseConfig
13+
conf model.DatabaseConfig
1414
}
1515

1616
// NewDatabase returns a ready to use Database to perform operations on a type

backend/file.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import (
1212

1313
type FileStore struct {
1414
auth model.Auth
15-
conf model.BaseConfig
15+
conf model.DatabaseConfig
1616
}
1717

18-
func newFile(auth model.Auth, conf model.BaseConfig) FileStore {
18+
func newFile(auth model.Auth, conf model.DatabaseConfig) FileStore {
1919
return FileStore{
2020
auth: auth,
2121
conf: conf,

backend/user.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414

1515
// User handles everything related to accounts and users inside a database
1616
type User struct {
17-
conf model.BaseConfig
17+
conf model.DatabaseConfig
1818
}
1919

2020
func newUser(baseID string) User {
@@ -30,7 +30,7 @@ func (u User) CreateAccount(email string) (string, error) {
3030
return "", errors.New("email not available")
3131
}
3232

33-
return DB.CreateUserAccount(u.conf.Name, email)
33+
return DB.CreateAccount(u.conf.Name, email)
3434
}
3535

3636
// CreateUserToken creates a user token (login) for a specific account in a database
@@ -40,20 +40,20 @@ func (u User) CreateUserToken(accountID, email, password string, role int) (stri
4040
return "", err
4141
}
4242

43-
tok := model.Token{
43+
tok := model.User{
4444
AccountID: accountID,
4545
Email: email,
4646
Password: string(b),
4747
Token: DB.NewID(),
4848
Role: role,
4949
Created: time.Now(),
5050
}
51-
return DB.CreateUserToken(u.conf.Name, tok)
51+
return DB.CreateUser(u.conf.Name, tok)
5252
}
5353

5454
// Authenticate tries to authenticate an email/password and return a session token
5555
func (u User) Authenticate(email, password string) (string, error) {
56-
tok, err := DB.FindTokenByEmail(u.conf.Name, email)
56+
tok, err := DB.FindUserByEmail(u.conf.Name, email)
5757
if err != nil {
5858
return "", err
5959
}

cache/cache_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
var (
1515
redisCache *Cache
1616
devCache *CacheDev
17-
adminToken model.Token
17+
adminToken model.User
1818
adminAuth model.Auth
1919
document string
2020
)

database/memory/account.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ import (
77
"github.com/staticbackendhq/core/model"
88
)
99

10-
func (m *Memory) FindToken(dbName, tokenID, token string) (tok model.Token, err error) {
11-
if err = getByID(m, dbName, "sb_tokens", tokenID, &tok); err != nil {
10+
func (m *Memory) FindUser(dbName, userID, token string) (tok model.User, err error) {
11+
if err = getByID(m, dbName, "sb_tokens", userID, &tok); err != nil {
1212
return
1313
} else if tok.Token != token {
1414
err = fmt.Errorf("token does not match")
1515
}
1616
return
1717
}
1818

19-
func (m *Memory) FindRootToken(dbName, tokenID, accountID, token string) (tok model.Token, err error) {
20-
tok, err = m.FindToken(dbName, tokenID, token)
19+
func (m *Memory) FindRootUser(dbName, userID, accountID, token string) (tok model.User, err error) {
20+
tok, err = m.FindUser(dbName, userID, token)
2121
if err != nil {
2222
return
2323
} else if tok.AccountID != accountID {
@@ -26,13 +26,13 @@ func (m *Memory) FindRootToken(dbName, tokenID, accountID, token string) (tok mo
2626
return
2727
}
2828

29-
func (m *Memory) GetRootForBase(dbName string) (tok model.Token, err error) {
30-
tokens, err := all[model.Token](m, dbName, "sb_tokens")
29+
func (m *Memory) GetRootForBase(dbName string) (tok model.User, err error) {
30+
tokens, err := all[model.User](m, dbName, "sb_tokens")
3131
if err != nil {
3232
return
3333
}
3434

35-
rootTokens := filter(tokens, func(t model.Token) bool {
35+
rootTokens := filter(tokens, func(t model.User) bool {
3636
return t.Role == 100
3737
})
3838

@@ -45,13 +45,13 @@ func (m *Memory) GetRootForBase(dbName string) (tok model.Token, err error) {
4545
return
4646
}
4747

48-
func (m *Memory) FindTokenByEmail(dbName, email string) (tok model.Token, err error) {
49-
tokens, err := all[model.Token](m, dbName, "sb_tokens")
48+
func (m *Memory) FindUserByEmail(dbName, email string) (tok model.User, err error) {
49+
tokens, err := all[model.User](m, dbName, "sb_tokens")
5050
if err != nil {
5151
return
5252
}
5353

54-
matches := filter(tokens, func(t model.Token) bool {
54+
matches := filter(tokens, func(t model.User) bool {
5555
return strings.EqualFold(t.Email, email)
5656
})
5757

@@ -65,23 +65,23 @@ func (m *Memory) FindTokenByEmail(dbName, email string) (tok model.Token, err er
6565
}
6666

6767
func (m *Memory) UserEmailExists(dbName, email string) (exists bool, err error) {
68-
if _, err := m.FindTokenByEmail(dbName, email); err == nil {
68+
if _, err := m.FindUserByEmail(dbName, email); err == nil {
6969
return true, nil
7070
}
7171
return
7272
}
7373

74-
func (m *Memory) GetFirstTokenFromAccountID(dbName, accountID string) (tok model.Token, err error) {
75-
tokens, err := all[model.Token](m, dbName, "sb_tokens")
74+
func (m *Memory) GetFirstUserFromAccountID(dbName, accountID string) (tok model.User, err error) {
75+
tokens, err := all[model.User](m, dbName, "sb_tokens")
7676
if err != nil {
7777
return
7878
}
7979

80-
matches := filter(tokens, func(t model.Token) bool {
80+
matches := filter(tokens, func(t model.User) bool {
8181
return t.AccountID == accountID
8282
})
8383

84-
matches = sortSlice(matches, func(a, b model.Token) bool {
84+
matches = sortSlice(matches, func(a, b model.User) bool {
8585
return a.Created.Before(b.Created)
8686
})
8787

database/memory/account_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package memory
33
import "testing"
44

55
func TestFindToken(t *testing.T) {
6-
tok, err := datastore.FindToken(confDBName, adminToken.ID, adminToken.Token)
6+
tok, err := datastore.FindUser(confDBName, adminToken.ID, adminToken.Token)
77
if err != nil {
88
t.Fatal(err)
99
} else if tok.ID != adminToken.ID {
@@ -12,7 +12,7 @@ func TestFindToken(t *testing.T) {
1212
}
1313

1414
func TestFindRootToken(t *testing.T) {
15-
tok, err := datastore.FindRootToken(confDBName, adminToken.ID, adminToken.AccountID, adminToken.Token)
15+
tok, err := datastore.FindRootUser(confDBName, adminToken.ID, adminToken.AccountID, adminToken.Token)
1616
if err != nil {
1717
t.Fatal(err)
1818
} else if tok.ID != adminToken.ID {
@@ -30,7 +30,7 @@ func TestGetRootForBase(t *testing.T) {
3030
}
3131

3232
func TestFindTokenByEmail(t *testing.T) {
33-
tok, err := datastore.FindTokenByEmail(confDBName, adminEmail)
33+
tok, err := datastore.FindUserByEmail(confDBName, adminEmail)
3434
if err != nil {
3535
t.Fatal(err)
3636
} else if tok.ID != adminToken.ID {

database/memory/membership.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/staticbackendhq/core/model"
88
)
99

10-
func (m *Memory) CreateUserAccount(dbName, email string) (id string, err error) {
10+
func (m *Memory) CreateAccount(dbName, email string) (id string, err error) {
1111
id = m.NewID()
1212

1313
acct := model.Account{
@@ -19,7 +19,7 @@ func (m *Memory) CreateUserAccount(dbName, email string) (id string, err error)
1919
return
2020
}
2121

22-
func (m *Memory) CreateUserToken(dbName string, tok model.Token) (id string, err error) {
22+
func (m *Memory) CreateUser(dbName string, tok model.User) (id string, err error) {
2323
id = m.NewID()
2424
tok.ID = id
2525

@@ -28,7 +28,7 @@ func (m *Memory) CreateUserToken(dbName string, tok model.Token) (id string, err
2828
}
2929

3030
func (m *Memory) SetPasswordResetCode(dbName, tokenID, code string) error {
31-
var tok model.Token
31+
var tok model.User
3232
if err := getByID(m, dbName, "sb_tokens", tokenID, &tok); err != nil {
3333
return err
3434
}
@@ -38,7 +38,7 @@ func (m *Memory) SetPasswordResetCode(dbName, tokenID, code string) error {
3838
}
3939

4040
func (m *Memory) ResetPassword(dbName, email, code, password string) error {
41-
tok, err := m.FindTokenByEmail(dbName, email)
41+
tok, err := m.FindUserByEmail(dbName, email)
4242
if err != nil {
4343
return err
4444
} else if tok.ResetCode != code {
@@ -50,7 +50,7 @@ func (m *Memory) ResetPassword(dbName, email, code, password string) error {
5050
}
5151

5252
func (m *Memory) SetUserRole(dbName, email string, role int) error {
53-
tok, err := m.FindTokenByEmail(dbName, email)
53+
tok, err := m.FindUserByEmail(dbName, email)
5454
if err != nil {
5555
return err
5656
}
@@ -60,7 +60,7 @@ func (m *Memory) SetUserRole(dbName, email string, role int) error {
6060
}
6161

6262
func (m *Memory) UserSetPassword(dbName, tokenID, password string) error {
63-
var tok model.Token
63+
var tok model.User
6464
if err := getByID(m, dbName, "sb_tokens", tokenID, &tok); err != nil {
6565
return err
6666
}

0 commit comments

Comments
 (0)