implement cli

This commit is contained in:
2025-01-23 06:33:29 -06:00
parent 1f10af0081
commit 3c0b3c04b7
9 changed files with 105 additions and 250 deletions

View File

@@ -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 {

View File

@@ -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) {