diff --git a/api/queryRunner/queryrunner.go b/api/queryRunner/queryrunner.go index 9992564a..61a64a12 100644 --- a/api/queryRunner/queryrunner.go +++ b/api/queryRunner/queryrunner.go @@ -3,7 +3,7 @@ package controllers import ( "context" "encoding/json" - "queryorchestration/internal/query/document" + documentsync "queryorchestration/internal/document/sync" "github.com/go-playground/validator/v10" @@ -11,15 +11,19 @@ import ( "github.com/google/uuid" ) -type QueryRunner struct { - validator *validator.Validate - document *document.Service +type Services struct { + DocumentSync *documentsync.Service } -func NewQueryRunner(svc *document.Service, validator *validator.Validate) QueryRunner { +type QueryRunner struct { + validator *validator.Validate + svc *Services +} + +func NewQueryRunner(validator *validator.Validate, svc *Services) QueryRunner { return QueryRunner{ validator: validator, - document: svc, + svc: svc, } } @@ -28,7 +32,7 @@ type DocumentQueryEvent struct { } func (s QueryRunner) Process(ctx context.Context, req *types.Message) error { - var body document.Document + var body documentsync.Document err := json.Unmarshal([]byte(*req.Body), &body) if err != nil { return err @@ -39,7 +43,7 @@ func (s QueryRunner) Process(ctx context.Context, req *types.Message) error { return err } - err = s.document.Sync(ctx, &body) + err = s.svc.DocumentSync.Sync(ctx, &body) if err != nil { return err } diff --git a/api/queryRunner/queryrunner_test.go b/api/queryRunner/queryrunner_test.go index 43ba8af7..9ca147f4 100644 --- a/api/queryRunner/queryrunner_test.go +++ b/api/queryRunner/queryrunner_test.go @@ -6,9 +6,9 @@ import ( controllers "queryorchestration/api/queryRunner" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" + documentsync "queryorchestration/internal/document/sync" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" - "queryorchestration/internal/query/document" "testing" "github.com/aws/aws-sdk-go-v2/service/sqs/types" @@ -32,19 +32,20 @@ func TestQueryRunner(t *testing.T) { Pool: pool, } - svc := document.New(db, &document.Services{ + svc := documentsync.New(db, &documentsync.Services{ Collector: collector.New(db, &collector.Services{ Query: query.New(db), }), }) - runner := controllers.NewQueryRunner(svc, validator.New()) + runner := controllers.NewQueryRunner(validator.New(), &controllers.Services{ + DocumentSync: svc, + }) assert.NotNil(t, runner) - doc := document.Document{ + doc := documentsync.Document{ ID: uuid.New(), JobID: uuid.New(), - Name: "document_name", CleanVersion: 1, TextVersion: 1, } diff --git a/api/queryService/job_test.go b/api/queryService/job_test.go index 5297de20..a9cb3de8 100644 --- a/api/queryService/job_test.go +++ b/api/queryService/job_test.go @@ -9,7 +9,7 @@ import ( "queryorchestration/internal/client" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "queryorchestration/internal/job" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" diff --git a/api/queryService/jobcollector_test.go b/api/queryService/jobcollector_test.go index 453bd716..b226808b 100644 --- a/api/queryService/jobcollector_test.go +++ b/api/queryService/jobcollector_test.go @@ -7,7 +7,7 @@ import ( queryservice "queryorchestration/api/queryService" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" textextraction "queryorchestration/internal/text_extraction" diff --git a/cmd/queryRunner/main.go b/cmd/queryRunner/main.go index 14845f8f..03546e91 100644 --- a/cmd/queryRunner/main.go +++ b/cmd/queryRunner/main.go @@ -3,9 +3,9 @@ package main import ( "context" controllers "queryorchestration/api/queryRunner" + documentsync "queryorchestration/internal/document/sync" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" - "queryorchestration/internal/query/document" "queryorchestration/internal/server" "queryorchestration/internal/server/queue" @@ -20,12 +20,13 @@ func main() { coll := collector.New(cfg.Database, &collector.Services{ Query: que, }) - - svc := document.New(cfg.Database, &document.Services{ + svc := documentsync.New(cfg.Database, &documentsync.Services{ Collector: coll, }) - return controllers.NewQueryRunner(svc, cfg.Validator) + return controllers.NewQueryRunner(cfg.Validator, &controllers.Services{ + DocumentSync: svc, + }) } server := queue.NewServer(ctx, &queue.ListenerConfig{ diff --git a/cmd/queryService/main.go b/cmd/queryService/main.go index f6fbe326..a92f19b6 100644 --- a/cmd/queryService/main.go +++ b/cmd/queryService/main.go @@ -5,7 +5,7 @@ import ( "log" queryservice "queryorchestration/api/queryService" "queryorchestration/internal/client" - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "queryorchestration/internal/export" "queryorchestration/internal/job" "queryorchestration/internal/job/collector" diff --git a/database/migrations/00000000000006_documents.up.sql b/database/migrations/00000000000006_documents.up.sql index 24236f71..3f921e28 100644 --- a/database/migrations/00000000000006_documents.up.sql +++ b/database/migrations/00000000000006_documents.up.sql @@ -1,5 +1,7 @@ CREATE TABLE documents ( id uuid primary key DEFAULT gen_random_uuid(), jobId uuid not null, + hash text not null, + location text not null, foreign key (jobId) references jobs(id) ); \ No newline at end of file diff --git a/database/queries/document.sql b/database/queries/document.sql index 0261c0b4..65bb3987 100644 --- a/database/queries/document.sql +++ b/database/queries/document.sql @@ -1,5 +1,5 @@ -- name: GetDocument :one -SELECT id, jobId FROM documents WHERE id = $1 LIMIT 1; +SELECT id, jobId, hash, location FROM documents WHERE id = $1 LIMIT 1; -- name: CreateDocument :one -INSERT INTO documents (jobId) VALUES ($1) RETURNING id; \ No newline at end of file +INSERT INTO documents (jobId, hash, location) VALUES ($1, $2, $3) RETURNING id; \ No newline at end of file diff --git a/internal/database/repository/document.sql.go b/internal/database/repository/document.sql.go index 1647a243..38ee47a1 100644 --- a/internal/database/repository/document.sql.go +++ b/internal/database/repository/document.sql.go @@ -12,29 +12,40 @@ import ( ) const createDocument = `-- name: CreateDocument :one -INSERT INTO documents (jobId) VALUES ($1) RETURNING id +INSERT INTO documents (jobId, hash, location) VALUES ($1, $2, $3) RETURNING id ` +type CreateDocumentParams struct { + Jobid pgtype.UUID `db:"jobid"` + Hash string `db:"hash"` + Location string `db:"location"` +} + // CreateDocument // -// INSERT INTO documents (jobId) VALUES ($1) RETURNING id -func (q *Queries) CreateDocument(ctx context.Context, jobid pgtype.UUID) (pgtype.UUID, error) { - row := q.db.QueryRow(ctx, createDocument, jobid) +// INSERT INTO documents (jobId, hash, location) VALUES ($1, $2, $3) RETURNING id +func (q *Queries) CreateDocument(ctx context.Context, arg *CreateDocumentParams) (pgtype.UUID, error) { + row := q.db.QueryRow(ctx, createDocument, arg.Jobid, arg.Hash, arg.Location) var id pgtype.UUID err := row.Scan(&id) return id, err } const getDocument = `-- name: GetDocument :one -SELECT id, jobId FROM documents WHERE id = $1 LIMIT 1 +SELECT id, jobId, hash, location FROM documents WHERE id = $1 LIMIT 1 ` // GetDocument // -// SELECT id, jobId FROM documents WHERE id = $1 LIMIT 1 +// SELECT id, jobId, hash, location FROM documents WHERE id = $1 LIMIT 1 func (q *Queries) GetDocument(ctx context.Context, id pgtype.UUID) (*Document, error) { row := q.db.QueryRow(ctx, getDocument, id) var i Document - err := row.Scan(&i.ID, &i.Jobid) + err := row.Scan( + &i.ID, + &i.Jobid, + &i.Hash, + &i.Location, + ) return &i, err } diff --git a/internal/database/repository/document_test.go b/internal/database/repository/document_test.go index 4ecb9dc4..c8588ce3 100644 --- a/internal/database/repository/document_test.go +++ b/internal/database/repository/document_test.go @@ -27,7 +27,11 @@ func TestDocument(t *testing.T) { jobId, err := queries.CreateJob(ctx, clientId) assert.Nil(t, err) - id, err := queries.CreateDocument(ctx, jobId) + hash := "example_hash" + id, err := queries.CreateDocument(ctx, &repository.CreateDocumentParams{ + Jobid: jobId, + Hash: hash, + }) assert.Nil(t, err) assert.NotEmpty(t, id) @@ -36,5 +40,6 @@ func TestDocument(t *testing.T) { assert.EqualExportedValues(t, &repository.Document{ ID: id, Jobid: jobId, + Hash: hash, }, doc) } diff --git a/internal/database/repository/models.go b/internal/database/repository/models.go index 8575a86f..fe0ffd19 100644 --- a/internal/database/repository/models.go +++ b/internal/database/repository/models.go @@ -102,8 +102,10 @@ type Collectorquerydependencytree struct { } type Document struct { - ID pgtype.UUID `db:"id"` - Jobid pgtype.UUID `db:"jobid"` + ID pgtype.UUID `db:"id"` + Jobid pgtype.UUID `db:"jobid"` + Hash string `db:"hash"` + Location string `db:"location"` } type Fullactivecollector struct { diff --git a/internal/database/repository/result_test.go b/internal/database/repository/result_test.go index 521ea817..9ed91dd6 100644 --- a/internal/database/repository/result_test.go +++ b/internal/database/repository/result_test.go @@ -31,7 +31,10 @@ func TestResults(t *testing.T) { assert.Nil(t, err) jobId, err := queries.CreateJob(ctx, clientId) assert.Nil(t, err) - documentID, err := queries.CreateDocument(ctx, jobId) + documentID, err := queries.CreateDocument(ctx, &repository.CreateDocumentParams{ + Jobid: jobId, + Hash: "example_hash", + }) assert.Nil(t, err) jsonQuery, err := queries.GetQuery(ctx, jsonQueryID) diff --git a/internal/document_clean/service.go b/internal/document/clean/service.go similarity index 100% rename from internal/document_clean/service.go rename to internal/document/clean/service.go diff --git a/internal/document_clean/service_test.go b/internal/document/clean/service_test.go similarity index 74% rename from internal/document_clean/service_test.go rename to internal/document/clean/service_test.go index adaf4266..36e7cacc 100644 --- a/internal/document_clean/service_test.go +++ b/internal/document/clean/service_test.go @@ -1,7 +1,7 @@ package documentclean_test import ( - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "testing" "github.com/stretchr/testify/assert" diff --git a/internal/document/create.go b/internal/document/create.go new file mode 100644 index 00000000..7380a800 --- /dev/null +++ b/internal/document/create.go @@ -0,0 +1,41 @@ +package document + +import ( + "context" + "queryorchestration/internal/database" + "queryorchestration/internal/database/repository" + + "github.com/google/uuid" +) + +type Location = string + +type Create struct { + JobID uuid.UUID + Location Location +} + +func (s *Service) Create(ctx context.Context, doc *Create) (uuid.UUID, error) { + hash, err := s.getHash() + if err != nil { + return uuid.Nil, err + } + + dbid, err := s.db.Queries.CreateDocument(ctx, &repository.CreateDocumentParams{ + Jobid: database.MustToDBUUID(doc.JobID), + Hash: hash, + Location: doc.Location, + }) + if err != nil { + return uuid.Nil, err + } + + id := database.MustToUUID(dbid) + + return id, nil +} + +func (s *Service) getHash() (string, error) { + // TODO + return "example_hash", nil +} diff --git a/internal/document/create_test.go b/internal/document/create_test.go new file mode 100644 index 00000000..32b27529 --- /dev/null +++ b/internal/document/create_test.go @@ -0,0 +1,48 @@ +package document_test + +import ( + "context" + "queryorchestration/internal/database" + "queryorchestration/internal/database/repository" + "queryorchestration/internal/document" + "testing" + + "github.com/google/uuid" + "github.com/pashagolub/pgxmock/v3" + "github.com/stretchr/testify/assert" +) + +func TestCreate(t *testing.T) { + ctx := context.Background() + + pool, err := pgxmock.NewPool() + if err != nil { + t.Fatalf("failed to open pgxmock database: %v", err) + } + queries := repository.New(pool) + db := &database.Connection{ + Queries: queries, + Pool: pool, + } + + svc := document.New(db) + + doc := document.Document{ + ID: uuid.New(), + JobID: uuid.New(), + Location: "example_location", + } + + pool.ExpectQuery("name: CreateDocument :one").WithArgs(database.MustToDBUUID(doc.JobID), pgxmock.AnyArg(), doc.Location). + WillReturnRows( + pgxmock.NewRows([]string{"id"}). + AddRow(database.MustToDBUUID(doc.ID)), + ) + + id, err := svc.Create(ctx, &document.Create{ + JobID: doc.JobID, + Location: doc.Location, + }) + assert.Nil(t, err) + assert.Equal(t, doc.ID, id) +} diff --git a/internal/document/get.go b/internal/document/get.go new file mode 100644 index 00000000..7f2153b9 --- /dev/null +++ b/internal/document/get.go @@ -0,0 +1,22 @@ +package document + +import ( + "context" + "queryorchestration/internal/database" + + "github.com/google/uuid" +) + +func (s *Service) Get(ctx context.Context, id uuid.UUID) (*Document, error) { + doc, err := s.db.Queries.GetDocument(ctx, database.MustToDBUUID(id)) + if err != nil { + return nil, err + } + + return &Document{ + ID: database.MustToUUID(doc.ID), + JobID: database.MustToUUID(doc.Jobid), + Hash: doc.Hash, + Location: doc.Location, + }, nil +} diff --git a/internal/document/get_test.go b/internal/document/get_test.go new file mode 100644 index 00000000..a4a2b569 --- /dev/null +++ b/internal/document/get_test.go @@ -0,0 +1,46 @@ +package document_test + +import ( + "context" + "queryorchestration/internal/database" + "queryorchestration/internal/database/repository" + "queryorchestration/internal/document" + "testing" + + "github.com/google/uuid" + "github.com/pashagolub/pgxmock/v3" + "github.com/stretchr/testify/assert" +) + +func TestGet(t *testing.T) { + ctx := context.Background() + + pool, err := pgxmock.NewPool() + if err != nil { + t.Fatalf("failed to open pgxmock database: %v", err) + } + queries := repository.New(pool) + db := &database.Connection{ + Queries: queries, + Pool: pool, + } + + svc := document.New(db) + + doc := document.Document{ + ID: uuid.New(), + JobID: uuid.New(), + Hash: "example_hash", + Location: "example_location", + } + + pool.ExpectQuery("name: GetDocument :one").WithArgs(database.MustToDBUUID(doc.ID)). + WillReturnRows( + pgxmock.NewRows([]string{"id", "jobId", "hash", "location"}). + AddRow(database.MustToDBUUID(doc.ID), database.MustToDBUUID(doc.JobID), doc.Hash, doc.Location), + ) + + adoc, err := svc.Get(ctx, doc.ID) + assert.Nil(t, err) + assert.Equal(t, &doc, adoc) +} diff --git a/internal/document/service.go b/internal/document/service.go new file mode 100644 index 00000000..c8dc4462 --- /dev/null +++ b/internal/document/service.go @@ -0,0 +1,24 @@ +package document + +import ( + "queryorchestration/internal/database" + + "github.com/google/uuid" +) + +type Document struct { + ID uuid.UUID + JobID uuid.UUID + Hash string + Location Location +} + +type Service struct { + db *database.Connection +} + +func New(db *database.Connection) *Service { + return &Service{ + db, + } +} diff --git a/internal/document/service_test.go b/internal/document/service_test.go new file mode 100644 index 00000000..b60cfac2 --- /dev/null +++ b/internal/document/service_test.go @@ -0,0 +1,13 @@ +package document_test + +import ( + "queryorchestration/internal/document" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNew(t *testing.T) { + svc := document.New(nil) + assert.NotNil(t, svc) +} diff --git a/internal/document/sync/service.go b/internal/document/sync/service.go new file mode 100644 index 00000000..32891c98 --- /dev/null +++ b/internal/document/sync/service.go @@ -0,0 +1,31 @@ +package documentsync + +import ( + "queryorchestration/internal/database" + "queryorchestration/internal/job/collector" + + "github.com/google/uuid" +) + +type Document struct { + ID uuid.UUID `json:"id" validate:"required,uuid"` + JobID uuid.UUID `json:"jobId" validate:"required,uuid"` + CleanVersion int32 `json:"cleanVersion" validate:"required,gt=0"` + TextVersion int32 `json:"textVersion" validate:"required,gt=0"` +} + +type Services struct { + Collector *collector.Service +} + +type Service struct { + db *database.Connection + svc *Services +} + +func New(db *database.Connection, svc *Services) *Service { + return &Service{ + db, + svc, + } +} diff --git a/internal/document/sync/service_test.go b/internal/document/sync/service_test.go new file mode 100644 index 00000000..5b18873e --- /dev/null +++ b/internal/document/sync/service_test.go @@ -0,0 +1,13 @@ +package documentsync_test + +import ( + documentsync "queryorchestration/internal/document/sync" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNew(t *testing.T) { + svc := documentsync.New(nil, nil) + assert.NotNil(t, svc) +} diff --git a/internal/query/document/service.go b/internal/document/sync/sync.go similarity index 70% rename from internal/query/document/service.go rename to internal/document/sync/sync.go index 911ce999..ef6b075a 100644 --- a/internal/query/document/service.go +++ b/internal/document/sync/sync.go @@ -1,4 +1,4 @@ -package document +package documentsync import ( "context" @@ -11,30 +11,6 @@ import ( "github.com/google/uuid" ) -type Document struct { - ID uuid.UUID `json:"id" validate:"required,uuid"` - JobID uuid.UUID `json:"jobId" validate:"required,uuid"` - Name string `json:"name" validate:"required"` - CleanVersion int32 `json:"cleanVersion" validate:"required,gt=0"` - TextVersion int32 `json:"textVersion" validate:"required,gt=0"` -} - -type Services struct { - Collector *collector.Service -} - -type Service struct { - db *database.Connection - svc *Services -} - -func New(db *database.Connection, svc *Services) *Service { - return &Service{ - db, - svc, - } -} - func (s *Service) Sync(ctx context.Context, doc *Document) error { coll, err := s.svc.Collector.GetByJobID(ctx, doc.JobID) if err != nil { diff --git a/internal/query/document/sync_test.go b/internal/document/sync/sync_test.go similarity index 93% rename from internal/query/document/sync_test.go rename to internal/document/sync/sync_test.go index 2f200945..23147552 100644 --- a/internal/query/document/sync_test.go +++ b/internal/document/sync/sync_test.go @@ -1,12 +1,12 @@ -package document_test +package documentsync_test import ( "context" "errors" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" + documentsync "queryorchestration/internal/document/sync" "queryorchestration/internal/job/collector" - "queryorchestration/internal/query/document" "testing" "github.com/google/uuid" @@ -28,10 +28,9 @@ func TestSyncIsSynced(t *testing.T) { Pool: pool, } - doc := document.Document{ + doc := documentsync.Document{ ID: uuid.New(), JobID: uuid.New(), - Name: "document_name", } queryVersion := int32(1) @@ -58,7 +57,7 @@ func TestSyncIsSynced(t *testing.T) { AddRow(database.MustToDBUUID(coll.ID), pgtype.UUID{}, repository.QuerytypeJsonExtractor, queryVersion, []pgtype.UUID{}), ) - docSvc := document.New(db, &document.Services{ + docSvc := documentsync.New(db, &documentsync.Services{ Collector: collector.New(db, &collector.Services{}), }) err = docSvc.Sync(ctx, &doc) @@ -78,10 +77,9 @@ func TestSyncDBFail(t *testing.T) { Pool: pool, } - doc := document.Document{ + doc := documentsync.Document{ ID: uuid.New(), JobID: uuid.New(), - Name: "document_name", } dbCollectorId := database.MustToDBUUID(uuid.New()) @@ -95,7 +93,7 @@ func TestSyncDBFail(t *testing.T) { pgxmock.NewRows([]string{"id", "jobId", "minCleanVersion", "minTextVersion", "activeVersion", "latestVersion", "fields"}), ) - docSvc := document.New(db, &document.Services{ + docSvc := documentsync.New(db, &documentsync.Services{ Collector: collector.New(db, &collector.Services{}), }) err = docSvc.Sync(ctx, &doc) @@ -110,7 +108,7 @@ func TestSyncDBFail(t *testing.T) { pool.ExpectQuery("name: ListResultsByDocumentID :many").WithArgs(database.MustToDBUUID(doc.ID), minCleanVersion, minTextVersion). WillReturnError(errors.New(dbErr)) - docSvc = document.New(db, &document.Services{ + docSvc = documentsync.New(db, &documentsync.Services{ Collector: collector.New(db, &collector.Services{}), }) err = docSvc.Sync(ctx, &doc) @@ -129,7 +127,7 @@ func TestSyncDBFail(t *testing.T) { pool.ExpectQuery("name: ListCollectorQueries :many").WithArgs(dbCollectorId). WillReturnError(errors.New(dbErr)) - docSvc = document.New(db, &document.Services{ + docSvc = documentsync.New(db, &documentsync.Services{ Collector: collector.New(db, &collector.Services{}), }) err = docSvc.Sync(ctx, &doc) @@ -158,7 +156,7 @@ func TestSyncDBFail(t *testing.T) { pool.ExpectQuery("name: ListResultValuesByID :many").WithArgs([]pgtype.UUID{resID}). WillReturnError(errors.New(dbErr)) - docSvc = document.New(db, &document.Services{ + docSvc = documentsync.New(db, &documentsync.Services{ Collector: collector.New(db, &collector.Services{}), }) err = docSvc.Sync(ctx, &doc) @@ -178,10 +176,9 @@ func TestSync(t *testing.T) { Pool: pool, } - doc := document.Document{ + doc := documentsync.Document{ ID: uuid.New(), JobID: uuid.New(), - Name: "document_name", } dbCollectorId := database.MustToDBUUID(uuid.New()) @@ -210,7 +207,7 @@ func TestSync(t *testing.T) { pgxmock.NewRows([]string{"id", "queryId", "value"}), ) - docSvc := document.New(db, &document.Services{ + docSvc := documentsync.New(db, &documentsync.Services{ Collector: collector.New(db, &collector.Services{}), }) err = docSvc.Sync(ctx, &doc) diff --git a/internal/document/sync/syncprivate_test.go b/internal/document/sync/syncprivate_test.go new file mode 100644 index 00000000..21fd4507 --- /dev/null +++ b/internal/document/sync/syncprivate_test.go @@ -0,0 +1,60 @@ +package documentsync + +import ( + "context" + "queryorchestration/internal/database" + "queryorchestration/internal/database/repository" + "queryorchestration/internal/job/collector" + "queryorchestration/internal/query/result" + "testing" + + "github.com/google/uuid" + "github.com/pashagolub/pgxmock/v3" + "github.com/stretchr/testify/assert" +) + +func TestGetResults(t *testing.T) { + ctx := context.Background() + + pool, err := pgxmock.NewPool() + if err != nil { + t.Fatalf("failed to open pgxmock database: %v", err) + } + queries := repository.New(pool) + db := &database.Connection{ + Queries: queries, + Pool: pool, + } + + doc := Document{ + ID: uuid.New(), + JobID: uuid.New(), + } + + coll := collector.Collector{ + ID: uuid.New(), + JobID: doc.JobID, + MinCleanVersion: int32(1), + MinTextVersion: int32(2), + } + results := []*result.Result{ + { + ID: uuid.New(), + QueryID: uuid.New(), + QueryVersion: 2, + }, + } + + pool.ExpectQuery("name: ListResultsByDocumentID :many").WithArgs(database.MustToDBUUID(doc.ID), coll.MinCleanVersion, coll.MinTextVersion). + WillReturnRows( + pgxmock.NewRows([]string{"id", "queryId", "queryVersion"}). + AddRow(database.MustToDBUUID(results[0].ID), database.MustToDBUUID(results[0].QueryID), results[0].QueryVersion), + ) + + docSvc := Service{ + db: db, + } + res, err := docSvc.getResults(ctx, doc.ID, &coll) + assert.Nil(t, err) + assert.ElementsMatch(t, results, res) +} diff --git a/internal/job/collector/service.go b/internal/job/collector/service.go index f911e518..1f65f06a 100644 --- a/internal/job/collector/service.go +++ b/internal/job/collector/service.go @@ -2,7 +2,7 @@ package collector import ( "queryorchestration/internal/database" - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "queryorchestration/internal/query" textextraction "queryorchestration/internal/text_extraction" diff --git a/internal/job/collector/update_test.go b/internal/job/collector/update_test.go index bb9fe340..550f8ad3 100644 --- a/internal/job/collector/update_test.go +++ b/internal/job/collector/update_test.go @@ -4,7 +4,7 @@ import ( "context" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" textextraction "queryorchestration/internal/text_extraction" diff --git a/internal/job/collector/updateprivate_test.go b/internal/job/collector/updateprivate_test.go index cc053be7..c67ee0d9 100644 --- a/internal/job/collector/updateprivate_test.go +++ b/internal/job/collector/updateprivate_test.go @@ -4,7 +4,7 @@ import ( "context" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "queryorchestration/internal/query" textextraction "queryorchestration/internal/text_extraction" "testing" diff --git a/internal/text_extraction/service_test.go b/internal/text_extraction/service_test.go index 1fa82b24..5de541ec 100644 --- a/internal/text_extraction/service_test.go +++ b/internal/text_extraction/service_test.go @@ -1,7 +1,7 @@ package textextraction_test import ( - documentclean "queryorchestration/internal/document_clean" + documentclean "queryorchestration/internal/document/clean" "testing" "github.com/stretchr/testify/assert" diff --git a/serviceAPIs/queryService.yaml b/serviceAPIs/queryService.yaml index c891af71..57e1c343 100644 --- a/serviceAPIs/queryService.yaml +++ b/serviceAPIs/queryService.yaml @@ -205,7 +205,7 @@ paths: $ref: '#/components/schemas/QueryTestResponse' '400': description: Invalid request body. - + /job: post: operationId: createJob @@ -528,7 +528,7 @@ components: description: The client id the job belongs to required: - client_id - + JobUpdate: type: object properties: diff --git a/test/queryRunner/queryrunner_test.go b/test/queryRunner/queryrunner_test.go index 06d8c6c4..4ac714e0 100644 --- a/test/queryRunner/queryrunner_test.go +++ b/test/queryRunner/queryrunner_test.go @@ -3,7 +3,7 @@ package integration_test import ( "context" "encoding/json" - "queryorchestration/internal/query/document" + documentsync "queryorchestration/internal/document/sync" "queryorchestration/internal/server/queue" "queryorchestration/internal/test" "testing" @@ -19,10 +19,9 @@ func TestQueryRunner(t *testing.T) { qCfg, cleanup := test.CreateQueueWithDependencies(t, ctx, "queryRunner") defer cleanup() - document := document.Document{ + document := documentsync.Document{ ID: uuid.New(), JobID: uuid.New(), - Name: "documentname", CleanVersion: int32(1), TextVersion: int32(1), }