basestructure

This commit is contained in:
Michael McGuinness
2025-01-07 16:12:18 +00:00
parent e09a75c216
commit d6fd74ac2d
7 changed files with 92 additions and 18 deletions
+11
View File
@@ -0,0 +1,11 @@
# https://taskfile.dev
version: '3'
includes:
lib:
taskfile: scripts/Taskfile.yml
flatten: true
vars:
IMAGE_NAME: queryorchestration
COVERAGE_THRESHOLD: 80
+5 -5
View File
@@ -10,10 +10,10 @@ SELECT EXISTS (
); );
-- name: GetQuery :one -- name: GetQuery :one
SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(DISTINCT r.requiredQueryId) as requiredIds
FROM queries AS q FROM queries AS q
JOIN queryConfigs AS c ON q.id = c.queryId LEFT JOIN queryConfigs AS c ON q.id = c.queryId
JOIN requiredQueries AS r ON q.id = r.queryId LEFT JOIN requiredQueries AS r ON q.id = r.queryId
WHERE q.id = $1 WHERE q.id = $1
and c.addedVersion >= q.activeVersion and c.addedVersion >= q.activeVersion
and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion
@@ -24,8 +24,8 @@ SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(r.req
-- name: ListQueries :many -- name: ListQueries :many
SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds
FROM queries AS q FROM queries AS q
JOIN queryConfigs AS c ON q.id = c.queryId LEFT JOIN queryConfigs AS c ON q.id = c.queryId
JOIN requiredQueries AS r ON q.id = r.queryId LEFT JOIN requiredQueries AS r ON q.id = r.queryId
WHERE c.addedVersion >= q.activeVersion WHERE c.addedVersion >= q.activeVersion
and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion
and r.addedVersion >= q.activeVersion and r.addedVersion >= q.activeVersion
+5 -5
View File
@@ -62,10 +62,10 @@ func (q *Queries) DeprecateQuery(ctx context.Context, queryid pgtype.UUID) error
} }
const getQuery = `-- name: GetQuery :one const getQuery = `-- name: GetQuery :one
SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(DISTINCT r.requiredQueryId) as requiredIds
FROM queries AS q FROM queries AS q
JOIN queryConfigs AS c ON q.id = c.queryId LEFT JOIN queryConfigs AS c ON q.id = c.queryId
JOIN requiredQueries AS r ON q.id = r.queryId LEFT JOIN requiredQueries AS r ON q.id = r.queryId
WHERE q.id = $1 WHERE q.id = $1
and c.addedVersion >= q.activeVersion and c.addedVersion >= q.activeVersion
and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion
@@ -134,8 +134,8 @@ func (q *Queries) IsQueryDeprecated(ctx context.Context, queryid pgtype.UUID) (b
const listQueries = `-- name: ListQueries :many const listQueries = `-- name: ListQueries :many
SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds SELECT q.id, q.type, q.activeVersion, q.latestVersion, c.config, ARRAY_AGG(r.requiredQueryId) AS requiredIds
FROM queries AS q FROM queries AS q
JOIN queryConfigs AS c ON q.id = c.queryId LEFT JOIN queryConfigs AS c ON q.id = c.queryId
JOIN requiredQueries AS r ON q.id = r.queryId LEFT JOIN requiredQueries AS r ON q.id = r.queryId
WHERE c.addedVersion >= q.activeVersion WHERE c.addedVersion >= q.activeVersion
and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion and COALESCE(c.removedVersion, q.activeVersion - 1) < q.activeVersion
and r.addedVersion >= q.activeVersion and r.addedVersion >= q.activeVersion
+6 -1
View File
@@ -42,7 +42,7 @@ func (s *Service) submitCreate(ctx context.Context, entity *queryprocessor.Creat
if err != nil { if err != nil {
return uuid.Nil, err return uuid.Nil, err
} }
defer tx.Rollback(ctx) // defer tx.Rollback(ctx)
qtx := s.db.Queries.WithTx(tx) qtx := s.db.Queries.WithTx(tx)
@@ -73,6 +73,11 @@ func (s *Service) submitCreate(ctx context.Context, entity *queryprocessor.Creat
} }
} }
err = tx.Commit(ctx)
if err != nil {
return uuid.Nil, err
}
id := database.MustToUUID(dbID) id := database.MustToUUID(dbID)
return id, nil return id, nil
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestName(t *testing.T) { func TestQueryRunner(t *testing.T) {
ctx := context.Background() ctx := context.Background()
queue, cleanup := createQueueDependencies(t, ctx, "queryrunner") queue, cleanup := createQueueDependencies(t, ctx, "queryrunner")
+27 -6
View File
@@ -8,7 +8,7 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestQuery(t *testing.T) { func TestQueryService(t *testing.T) {
ctx := context.Background() ctx := context.Background()
conn, cleanup := createAPIDependencies(t, ctx, "queryservice") conn, cleanup := createAPIDependencies(t, ctx, "queryservice")
@@ -16,11 +16,32 @@ func TestQuery(t *testing.T) {
client := serviceinterfaces.NewQueryServiceClient(conn) client := serviceinterfaces.NewQueryServiceClient(conn)
id := "sample_id" config := ""
reqQueries := []string{}
_, err := client.Get(ctx, &serviceinterfaces.IdMessage{ idRes, err := client.Create(ctx, &serviceinterfaces.QueryCreate{
Id: id, Type: 1,
Config: &config,
RequiredQueries: reqQueries,
}) })
assert.Nil(t, err) assert.Nil(t, err)
id := idRes.GetId()
assert.NotEmpty(t, id)
// queryRes, err := client.Get(ctx, &serviceinterfaces.IdMessage{
// Id: id,
// })
// log.Print(err)
// assert.Nil(t, err)
// assert.EqualExportedValues(t, serviceinterfaces.Query{
// Id: id,
// Type: serviceinterfaces.QueryType_QUERY_TYPE_CONTEXT_FULL,
// ActiveVersion: int32(1),
// LatestVersion: int32(1),
// Config: &config,
// RequiredQueries: reqQueries,
// }, *queryRes)
//QueryService - List, Update, Test
//JobController - Create, Update, Get
//Export - Trigger
} }
@@ -0,0 +1,37 @@
package database_test
import (
"fmt"
"queryorchestration/internal/database/repository"
"testing"
"github.com/stretchr/testify/assert"
)
func TestQueryTypeScan(t *testing.T) {
qType := repository.Querytype(fmt.Sprint(0))
stringType := "context_full"
err := qType.Scan(stringType)
assert.Nil(t, err)
}
func TestNullQueryTypeScan(t *testing.T) {
qType := repository.NullQuerytype{}
stringType := "context_full"
err := qType.Scan(stringType)
assert.Nil(t, err)
}
func TestNullQueryTypeValue(t *testing.T) {
qType := repository.NullQuerytype{}
stringType := "context_full"
err := qType.Scan(stringType)
assert.Nil(t, err)
val, err := qType.Value()
assert.Nil(t, err)
assert.Equal(t, stringType, val)
}