Merged in feature/update (pull request #27)
Query Update * baselineupdate * baseupdateplusmodelupdates * passtests * somemoresubmittesting * testinnerfunctions * readmeandinstall * cleanerstartup * readmeplusdeps * tidyatrighttime * validatetests * normalizedontvalidate * abitofzenormalizationcleanup * addunitstestforhelperfuns * normalizeactiveversiontestas
This commit is contained in:
+35
-35
@@ -136,7 +136,7 @@ type Query struct {
|
||||
LatestVersion int32 `json:"latest_version"`
|
||||
|
||||
// RequiredQueries List of required query IDs.
|
||||
RequiredQueries []string `json:"required_queries"`
|
||||
RequiredQueries *[]string `json:"required_queries,omitempty"`
|
||||
|
||||
// Type Specifies the type of the query.
|
||||
Type QueryType `json:"type"`
|
||||
@@ -437,40 +437,40 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
|
||||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
||||
+35
-15
@@ -4,6 +4,8 @@ import (
|
||||
"errors"
|
||||
"queryorchestration/internal/query"
|
||||
queryprocessor "queryorchestration/internal/query/processor"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func parseQueries(queries []*query.Query) ([]Query, error) {
|
||||
@@ -21,9 +23,14 @@ func parseQueries(queries []*query.Query) ([]Query, error) {
|
||||
}
|
||||
|
||||
func parseQuery(query *query.Query) (*Query, error) {
|
||||
requiredQueries := make([]string, len(query.RequiredQueryIDs))
|
||||
for index, id := range query.RequiredQueryIDs {
|
||||
requiredQueries[index] = id.String()
|
||||
var requiredQueries *[]string
|
||||
if query.RequiredQueryIDs != nil && len(*query.RequiredQueryIDs) > 0 {
|
||||
rQ := make([]string, len(*query.RequiredQueryIDs))
|
||||
for index, id := range *query.RequiredQueryIDs {
|
||||
rQ[index] = id.String()
|
||||
}
|
||||
|
||||
requiredQueries = &rQ
|
||||
}
|
||||
|
||||
qt, err := parseQueryType(query.Type)
|
||||
@@ -32,18 +39,12 @@ func parseQuery(query *query.Query) (*Query, error) {
|
||||
}
|
||||
|
||||
q := &Query{
|
||||
Id: query.ID.String(),
|
||||
Type: qt,
|
||||
ActiveVersion: query.ActiveVersion,
|
||||
LatestVersion: query.LatestVersion,
|
||||
}
|
||||
|
||||
if query.Config != "" {
|
||||
q.Config = &query.Config
|
||||
}
|
||||
|
||||
if len(query.RequiredQueryIDs) > 0 {
|
||||
q.RequiredQueries = requiredQueries
|
||||
Id: query.ID.String(),
|
||||
Type: qt,
|
||||
ActiveVersion: query.ActiveVersion,
|
||||
LatestVersion: query.LatestVersion,
|
||||
RequiredQueries: requiredQueries,
|
||||
Config: query.Config,
|
||||
}
|
||||
|
||||
return q, nil
|
||||
@@ -70,3 +71,22 @@ func parseSpecQueryType(qType QueryType) (queryprocessor.Type, error) {
|
||||
return queryprocessor.Type(-1), errors.New("invalid query type")
|
||||
}
|
||||
}
|
||||
|
||||
func parseStringToUUIDArray(sids *[]string) (*[]uuid.UUID, error) {
|
||||
var ids []uuid.UUID
|
||||
if sids != nil {
|
||||
ids = make([]uuid.UUID, len(*sids))
|
||||
for index, id := range *sids {
|
||||
parsedID, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
return nil, errors.New("invalid required id")
|
||||
}
|
||||
|
||||
ids[index] = parsedID
|
||||
}
|
||||
|
||||
return &ids, nil
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
@@ -10,16 +10,17 @@ import (
|
||||
)
|
||||
|
||||
func TestParseQueries(t *testing.T) {
|
||||
cfg := "hey"
|
||||
in := []*query.Query{
|
||||
{
|
||||
ID: uuid.New(),
|
||||
Type: queryprocessor.TypeContextFull,
|
||||
ActiveVersion: 1,
|
||||
LatestVersion: 2,
|
||||
RequiredQueryIDs: []uuid.UUID{
|
||||
RequiredQueryIDs: &[]uuid.UUID{
|
||||
uuid.New(),
|
||||
},
|
||||
Config: "hey",
|
||||
Config: &cfg,
|
||||
},
|
||||
}
|
||||
out, err := parseQueries(in)
|
||||
@@ -31,24 +32,25 @@ func TestParseQueries(t *testing.T) {
|
||||
Type: CONTEXTFULL,
|
||||
ActiveVersion: 1,
|
||||
LatestVersion: 2,
|
||||
RequiredQueries: []string{
|
||||
in[0].RequiredQueryIDs[0].String(),
|
||||
RequiredQueries: &[]string{
|
||||
(*in[0].RequiredQueryIDs)[0].String(),
|
||||
},
|
||||
Config: &in[0].Config,
|
||||
Config: in[0].Config,
|
||||
},
|
||||
}, out)
|
||||
}
|
||||
|
||||
func TestParseQuery(t *testing.T) {
|
||||
cfg := "hey"
|
||||
in := &query.Query{
|
||||
ID: uuid.New(),
|
||||
Type: queryprocessor.TypeContextFull,
|
||||
ActiveVersion: 1,
|
||||
LatestVersion: 2,
|
||||
RequiredQueryIDs: []uuid.UUID{
|
||||
RequiredQueryIDs: &[]uuid.UUID{
|
||||
uuid.New(),
|
||||
},
|
||||
Config: "hey",
|
||||
Config: &cfg,
|
||||
}
|
||||
out, err := parseQuery(in)
|
||||
assert.Nil(t, err)
|
||||
@@ -57,10 +59,28 @@ func TestParseQuery(t *testing.T) {
|
||||
Type: CONTEXTFULL,
|
||||
ActiveVersion: 1,
|
||||
LatestVersion: 2,
|
||||
RequiredQueries: []string{
|
||||
in.RequiredQueryIDs[0].String(),
|
||||
RequiredQueries: &[]string{
|
||||
(*in.RequiredQueryIDs)[0].String(),
|
||||
},
|
||||
Config: &in.Config,
|
||||
Config: in.Config,
|
||||
},
|
||||
*out)
|
||||
}
|
||||
|
||||
func TestParseQueryMinimal(t *testing.T) {
|
||||
in := &query.Query{
|
||||
ID: uuid.New(),
|
||||
Type: queryprocessor.TypeContextFull,
|
||||
ActiveVersion: 1,
|
||||
LatestVersion: 2,
|
||||
}
|
||||
out, err := parseQuery(in)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualExportedValues(t, Query{
|
||||
Id: in.ID.String(),
|
||||
Type: CONTEXTFULL,
|
||||
ActiveVersion: 1,
|
||||
LatestVersion: 2,
|
||||
},
|
||||
*out)
|
||||
}
|
||||
@@ -90,3 +110,16 @@ func TestParseSpecQueryType(t *testing.T) {
|
||||
_, err = parseSpecQueryType("invalid")
|
||||
assert.NotNil(t, err)
|
||||
}
|
||||
|
||||
func TestParseStringToUUIDArray(t *testing.T) {
|
||||
ids := []uuid.UUID{uuid.New()}
|
||||
|
||||
out, err := parseStringToUUIDArray(&[]string{ids[0].String()})
|
||||
assert.Nil(t, err)
|
||||
assert.ElementsMatch(t, ids, *out)
|
||||
_, err = parseStringToUUIDArray(&[]string{"invalid_uuid"})
|
||||
assert.Error(t, err)
|
||||
out, err = parseStringToUUIDArray(nil)
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, out)
|
||||
}
|
||||
|
||||
+18
-12
@@ -53,17 +53,9 @@ func (s *Controllers) CreateQuery(ctx echo.Context) error {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, err)
|
||||
}
|
||||
|
||||
requiredQueryIDs := []uuid.UUID{}
|
||||
if req.RequiredQueries != nil {
|
||||
requiredQueryIDs := make([]uuid.UUID, len(*req.RequiredQueries))
|
||||
for index, id := range *req.RequiredQueries {
|
||||
parsedID, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid Required ID")
|
||||
}
|
||||
|
||||
requiredQueryIDs[index] = parsedID
|
||||
}
|
||||
requiredQueryIDs, err := parseStringToUUIDArray(req.RequiredQueries)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid Required IDs")
|
||||
}
|
||||
|
||||
qt, err := parseSpecQueryType(req.Type)
|
||||
@@ -74,6 +66,7 @@ func (s *Controllers) CreateQuery(ctx echo.Context) error {
|
||||
id, err := s.svc.Query.Create(ctx.Request().Context(), &queryprocessor.Create{
|
||||
Type: qt,
|
||||
RequiredQueryIDs: requiredQueryIDs,
|
||||
Config: req.Config,
|
||||
})
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Unable to create query: %s", err))
|
||||
@@ -85,13 +78,26 @@ func (s *Controllers) CreateQuery(ctx echo.Context) error {
|
||||
}
|
||||
|
||||
func (s *Controllers) UpdateQuery(ctx echo.Context, id string) error {
|
||||
req := QueryUpdate{}
|
||||
if err := ctx.Bind(&req); err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, err)
|
||||
}
|
||||
|
||||
uid, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid ID")
|
||||
}
|
||||
|
||||
requiredQueryIDs, err := parseStringToUUIDArray(req.RequiredQueries)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid Required IDs")
|
||||
}
|
||||
|
||||
err = s.svc.Query.Update(ctx.Request().Context(), &queryprocessor.Update{
|
||||
ID: uid,
|
||||
ActiveVersion: req.ActiveVersion,
|
||||
Config: req.Config,
|
||||
RequiredQueryIDs: requiredQueryIDs,
|
||||
ID: uid,
|
||||
})
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Unable to update query: %s", err))
|
||||
|
||||
@@ -167,7 +167,7 @@ func TestGetQueryById(t *testing.T) {
|
||||
|
||||
pool.ExpectQuery("-- name: GetQuery :one").WithArgs(database.MustToDBUUID(id)).WillReturnRows(
|
||||
pgxmock.NewRows([]string{"id", "type", "activeVersion", "latestVersion", "config", "requiredIds"}).
|
||||
AddRow(database.MustToDBUUID(id), repository.QuerytypeContextFull, int32(1), int32(2), []byte(""), []pgtype.UUID{}),
|
||||
AddRow(database.MustToDBUUID(id), repository.QuerytypeContextFull, int32(1), int32(2), nil, []pgtype.UUID{}),
|
||||
)
|
||||
|
||||
err = cons.GetQueryById(ctx, id.String())
|
||||
@@ -219,6 +219,11 @@ func TestUpdateQuery(t *testing.T) {
|
||||
AddRow(database.MustToDBUUID(id), repository.QuerytypeContextFull, int32(1), int32(2), []byte(""), []pgtype.UUID{}),
|
||||
)
|
||||
|
||||
pool.ExpectBeginTx(pgx.TxOptions{})
|
||||
pool.ExpectExec("name: UpdateQuery :exec").WithArgs(int32(1), int32(2), database.MustToDBUUID(id)).
|
||||
WillReturnResult(pgxmock.NewResult("", 1))
|
||||
pool.ExpectCommit()
|
||||
|
||||
err = cons.UpdateQuery(ctx, id.String())
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, http.StatusOK, rec.Code)
|
||||
|
||||
Reference in New Issue
Block a user