implement cli
This commit is contained in:
@@ -20,11 +20,27 @@ type SqliteRepository struct {
|
||||
ctx context.Context
|
||||
}
|
||||
|
||||
func NewSqliteRepository(queue *sqlc.Queue, ctx context.Context) SqliteRepository {
|
||||
return SqliteRepository{
|
||||
func NewSqliteRepository(dbPath string, ctx context.Context) (*SqliteRepository, error) {
|
||||
sqliteDb, err := sqlc.OpenSqliteDb(dbPath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
queue, err := sqlc.NewQueue(sqliteDb, ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &SqliteRepository{
|
||||
Queue: queue,
|
||||
ctx: ctx,
|
||||
}
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (d *SqliteRepository) Start() {
|
||||
d.Queue.Start()
|
||||
}
|
||||
|
||||
func (d *SqliteRepository) Stop() error {
|
||||
return d.Queue.Stop()
|
||||
}
|
||||
|
||||
func (d *SqliteRepository) CreateCustomer(c entities.Customer) error {
|
||||
@@ -264,6 +280,17 @@ func (d *SqliteRepository) RefreshUserPasscode(user entities.User, passcodeIdx [
|
||||
return d.Queue.EnqueueWriteTx(queryFunc, params)
|
||||
}
|
||||
|
||||
func (d *SqliteRepository) AddSvg(svg string) error {
|
||||
queryFunc := func(q *sqlc.Queries, ctx context.Context, args any) error {
|
||||
params, ok := args.(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("invalid argument type: expected AddSvg")
|
||||
}
|
||||
return q.AddSvg(ctx, params)
|
||||
}
|
||||
return d.Queue.EnqueueWriteTx(queryFunc, svg)
|
||||
}
|
||||
|
||||
func (d *SqliteRepository) GetCustomer(id entities.CustomerId) (*entities.Customer, error) {
|
||||
customer, err := d.Queue.Queries.GetCustomer(d.ctx, uuid.UUID(id).String())
|
||||
if err != nil {
|
||||
|
||||
@@ -3,7 +3,6 @@ package repository
|
||||
import (
|
||||
"context"
|
||||
"git.infra.nkode.tech/dkelly/nkode-core/entities"
|
||||
"git.infra.nkode.tech/dkelly/nkode-core/sqlc"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"os"
|
||||
"testing"
|
||||
@@ -11,20 +10,16 @@ import (
|
||||
|
||||
func TestNewSqliteDB(t *testing.T) {
|
||||
dbPath := os.Getenv("TEST_DB")
|
||||
// sql_driver.MakeTables(dbFile)
|
||||
ctx := context.Background()
|
||||
sqliteDb, err := sqlc.OpenSqliteDb(dbPath)
|
||||
sqliteDb, err := NewSqliteRepository(dbPath, ctx)
|
||||
assert.NoError(t, err)
|
||||
|
||||
queue, err := sqlc.NewQueue(sqliteDb, ctx)
|
||||
assert.NoError(t, err)
|
||||
|
||||
queue.Start()
|
||||
defer queue.Stop()
|
||||
db := NewSqliteRepository(queue, ctx)
|
||||
assert.NoError(t, err)
|
||||
testSignupLoginRenew(t, &db)
|
||||
testSqliteDBRandomSvgInterface(t, &db)
|
||||
sqliteDb.Start()
|
||||
defer func(t *testing.T, sqliteDb *SqliteRepository) {
|
||||
err := sqliteDb.Stop()
|
||||
assert.NoError(t, err)
|
||||
}(t, sqliteDb)
|
||||
testSignupLoginRenew(t, sqliteDb)
|
||||
testSqliteDBRandomSvgInterface(t, sqliteDb)
|
||||
}
|
||||
|
||||
func testSignupLoginRenew(t *testing.T, db CustomerUserRepository) {
|
||||
|
||||
Reference in New Issue
Block a user