Merged in feature/serviceconfig-integration (pull request #38)

DRAFT PR : WIP working through ideas for integration

* movearound

* attempttwo

* openapi

* further sanding

* fix

* start on tests

* runthroughsingleconfig

* somechanges

* reflectissue

* removeerrs

* mostlyremovepanic

* removeenv

* noncfgtests

* go

* repo

* fix service config test

* add PWD to all

* test fix

* fix lint

* todo for later

* passingunittests

* alltests

* testlogger

* testloggername

* clean
This commit is contained in:
Jay Brown
2025-01-31 13:43:55 +00:00
parent 058f8dba7f
commit 15adaebfcd
138 changed files with 1864 additions and 1695 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ type GetValueWithVersionParams struct {
}
func (s *Service) GetValueWithVersion(ctx context.Context, params *GetValueWithVersionParams) (resultprocessor.Value, error) {
res, err := s.db.Queries.GetResultValueWithVersion(ctx, &repository.GetResultValueWithVersionParams{
res, err := s.cfg.GetDBQueries().GetResultValueWithVersion(ctx, &repository.GetResultValueWithVersionParams{
Queryid: database.MustToDBUUID(params.QueryID),
Queryversion: params.QueryVersion,
Documentid: database.MustToDBUUID(params.DocumentID),
+6 -6
View File
@@ -6,6 +6,7 @@ import (
"queryorchestration/internal/database/repository"
resultprocessor "queryorchestration/internal/query/result/processor"
jsonextractor "queryorchestration/internal/query/types/jsonExtractor"
"queryorchestration/internal/serviceconfig"
"testing"
"github.com/google/uuid"
@@ -34,12 +35,11 @@ func TestGetValueWithVersion(t *testing.T) {
if err != nil {
t.Fatalf("failed to open pgxmock database: %v", err)
}
queries := repository.New(pool)
db := &database.Connection{
Queries: queries,
Pool: pool,
}
svc := New(db)
cfg := &serviceconfig.BaseConfig{}
cfg.DBPool = pool
cfg.DBQueries = repository.New(pool)
svc := New(cfg)
params := &GetValueWithVersionParams{
Type: resultprocessor.TypeJsonExtractor,
+1 -1
View File
@@ -18,7 +18,7 @@ type ListQueryRequirementValuesParams struct {
}
func (s *Service) ListQueryRequirementValues(ctx context.Context, params *ListQueryRequirementValuesParams) (*[]resultprocessor.Value, error) {
qResults, err := s.db.Queries.ListQueryRequirementValues(ctx, &repository.ListQueryRequirementValuesParams{
qResults, err := s.cfg.GetDBQueries().ListQueryRequirementValues(ctx, &repository.ListQueryRequirementValuesParams{
Queryid: database.MustToDBUUID(params.QueryID),
Documentid: database.MustToDBUUID(params.DocumentID),
Addedversion: params.QueryVersion,
+5 -6
View File
@@ -6,6 +6,7 @@ import (
"queryorchestration/internal/database/repository"
resultprocessor "queryorchestration/internal/query/result/processor"
jsonextractor "queryorchestration/internal/query/types/jsonExtractor"
"queryorchestration/internal/serviceconfig"
"testing"
"github.com/google/uuid"
@@ -21,13 +22,11 @@ func TestListQueryRequirementValues(t *testing.T) {
if err != nil {
t.Fatalf("failed to open pgxmock database: %v", err)
}
queries := repository.New(pool)
db := &database.Connection{
Queries: queries,
Pool: pool,
}
cfg := &serviceconfig.BaseConfig{}
cfg.DBPool = pool
cfg.DBQueries = repository.New(pool)
svc := Service{
db: db,
cfg: cfg,
}
params := &ListQueryRequirementValuesParams{
+1 -1
View File
@@ -61,7 +61,7 @@ func (s *Service) listRequiredValues(ctx context.Context, p *Process) (*[]result
func (s *Service) getProcessor(queryType resultprocessor.Type) (resultprocessor.Processor, error) {
switch queryType {
case resultprocessor.TypeJsonExtractor:
return jsonextractor.NewExtractor(s.db), nil
return jsonextractor.NewExtractor(s.cfg), nil
case resultprocessor.TypeContextFull:
return contextfull.NewExtractor(), nil
default:
+12 -15
View File
@@ -6,6 +6,7 @@ import (
"queryorchestration/internal/database/repository"
resultprocessor "queryorchestration/internal/query/result/processor"
jsonextractor "queryorchestration/internal/query/types/jsonExtractor"
"queryorchestration/internal/serviceconfig"
"testing"
"github.com/google/uuid"
@@ -21,17 +22,15 @@ func TestProcess(t *testing.T) {
if err != nil {
t.Fatalf("failed to open pgxmock database: %v", err)
}
queries := repository.New(pool)
db := &database.Connection{
Queries: queries,
Pool: pool,
}
cfg := &serviceconfig.BaseConfig{}
cfg.DBPool = pool
cfg.DBQueries = repository.New(pool)
svc := Service{
db: db,
cfg: cfg,
}
cfg := "{\"path\":\"examplekey\"}"
qcfg := "{\"path\":\"examplekey\"}"
params := Process{
DocumentID: uuid.New(),
MinCleanVersion: 1,
@@ -39,7 +38,7 @@ func TestProcess(t *testing.T) {
Query: &resultprocessor.Query{
ID: uuid.New(),
Version: 2,
Config: &cfg,
Config: &qcfg,
RequiredQueryIDs: &[]uuid.UUID{
uuid.New(),
},
@@ -53,7 +52,7 @@ func TestProcess(t *testing.T) {
)
pool.ExpectQuery("name: GetQueryConfig :one").WithArgs(database.MustToDBUUID(params.Query.ID), params.Query.Version).WillReturnRows(
pgxmock.NewRows([]string{"id", "config"}).
AddRow(pgtype.UUID{}, []byte(cfg)),
AddRow(pgtype.UUID{}, []byte(qcfg)),
)
val, err := svc.Process(ctx, &params)
@@ -69,14 +68,12 @@ func TestListRequiredValue(t *testing.T) {
if err != nil {
t.Fatalf("failed to open pgxmock database: %v", err)
}
queries := repository.New(pool)
db := &database.Connection{
Queries: queries,
Pool: pool,
}
cfg := &serviceconfig.BaseConfig{}
cfg.DBPool = pool
cfg.DBQueries = repository.New(pool)
svc := Service{
db: db,
cfg: cfg,
}
pr, err := svc.listRequiredValues(ctx, nil)
+4 -4
View File
@@ -1,7 +1,7 @@
package result
import (
"queryorchestration/internal/database"
"queryorchestration/internal/serviceconfig"
"github.com/google/uuid"
)
@@ -13,11 +13,11 @@ type Result struct {
}
type Service struct {
db *database.Connection
cfg serviceconfig.ConfigProvider
}
func New(db *database.Connection) *Service {
func New(cfg serviceconfig.ConfigProvider) *Service {
return &Service{
db,
cfg,
}
}
+5 -7
View File
@@ -1,9 +1,9 @@
package result_test
import (
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/query/result"
"queryorchestration/internal/serviceconfig"
"testing"
"github.com/pashagolub/pgxmock/v3"
@@ -15,11 +15,9 @@ func TestService(t *testing.T) {
if err != nil {
t.Fatalf("failed to open pgxmock database: %v", err)
}
queries := repository.New(pool)
db := &database.Connection{
Queries: queries,
Pool: pool,
}
svc := result.New(db)
cfg := &serviceconfig.BaseConfig{}
cfg.DBPool = pool
cfg.DBQueries = repository.New(pool)
svc := result.New(cfg)
assert.NotNil(t, svc)
}
+1 -1
View File
@@ -27,7 +27,7 @@ func (s *Service) Set(ctx context.Context, params *Set) (uuid.UUID, error) {
return uuid.Nil, err
}
dbId, err := s.db.Queries.SetResult(ctx, &repository.SetResultParams{
dbId, err := s.cfg.GetDBQueries().SetResult(ctx, &repository.SetResultParams{
Queryid: database.MustToDBUUID(params.Query.ID),
Documentid: database.MustToDBUUID(params.DocumentID),
Value: value.GetStoreValue(),
+8 -9
View File
@@ -5,6 +5,7 @@ import (
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
resultprocessor "queryorchestration/internal/query/result/processor"
"queryorchestration/internal/serviceconfig"
"testing"
"github.com/google/uuid"
@@ -20,18 +21,16 @@ func TestSet(t *testing.T) {
if err != nil {
t.Fatalf("failed to open pgxmock database: %v", err)
}
queries := repository.New(pool)
db := &database.Connection{
Queries: queries,
Pool: pool,
}
cfg := &serviceconfig.BaseConfig{}
cfg.DBPool = pool
cfg.DBQueries = repository.New(pool)
svc := Service{
db: db,
cfg: cfg,
}
rid := uuid.New()
cfg := "{\"path\":\"examplekey\"}"
qcfg := "{\"path\":\"examplekey\"}"
params := Set{
DocumentID: uuid.New(),
CleanVersion: 1,
@@ -39,7 +38,7 @@ func TestSet(t *testing.T) {
Query: &resultprocessor.Query{
ID: uuid.New(),
Version: 2,
Config: &cfg,
Config: &qcfg,
RequiredQueryIDs: &[]uuid.UUID{
uuid.New(),
},
@@ -53,7 +52,7 @@ func TestSet(t *testing.T) {
)
pool.ExpectQuery("name: GetQueryConfig :one").WithArgs(database.MustToDBUUID(params.Query.ID), params.Query.Version).WillReturnRows(
pgxmock.NewRows([]string{"id", "config"}).
AddRow(pgtype.UUID{}, []byte(cfg)),
AddRow(pgtype.UUID{}, []byte(qcfg)),
)
pool.ExpectQuery("name: SetResult :one").WithArgs(database.MustToDBUUID(params.Query.ID), database.MustToDBUUID(params.DocumentID), pgxmock.AnyArg(), params.CleanVersion, params.TextVersion, params.Query.Version).
WillReturnRows(
+1 -1
View File
@@ -9,7 +9,7 @@ import (
)
func (s *Service) ListUnsyncedQueriesByDocId(ctx context.Context, id uuid.UUID) ([]*resultprocessor.Query, error) {
qs, err := s.db.Queries.ListUnsyncedQueriesByDocId(ctx, database.MustToDBUUID(id))
qs, err := s.cfg.GetDBQueries().ListUnsyncedQueriesByDocId(ctx, database.MustToDBUUID(id))
if err != nil {
return nil, err
}
+5 -6
View File
@@ -6,6 +6,7 @@ import (
"queryorchestration/internal/database/repository"
"queryorchestration/internal/query/result"
resultprocessor "queryorchestration/internal/query/result/processor"
"queryorchestration/internal/serviceconfig"
"testing"
"github.com/google/uuid"
@@ -21,12 +22,10 @@ func TestListUnsyncedQueriesByDocId(t *testing.T) {
if err != nil {
t.Fatalf("failed to open pgxmock database: %v", err)
}
queries := repository.New(pool)
db := &database.Connection{
Queries: queries,
Pool: pool,
}
svc := result.New(db)
cfg := &serviceconfig.BaseConfig{}
cfg.DBPool = pool
cfg.DBQueries = repository.New(pool)
svc := result.New(cfg)
documentId := uuid.New()
actualQs := []*resultprocessor.Query{