Merged in feature/jobcollector (pull request #30)
Initial Job Collector (changes pending) * movearroundtocleancollector * internalgetfunctions * completecollectorquery * simplify * fixtests * addvendor * noplaceholder
This commit is contained in:
+89
-76
@@ -99,20 +99,47 @@ type IdMessage struct {
|
||||
|
||||
// JobCollector JobCollector model.
|
||||
type JobCollector struct {
|
||||
// ExampleProperty Example property for JobCollector.
|
||||
ExampleProperty *string `json:"example_property,omitempty"`
|
||||
// ActiveVersion The active version of the collector.
|
||||
ActiveVersion int32 `json:"active_version"`
|
||||
|
||||
// Fields The fields in the job collector.
|
||||
Fields []JobCollectorField `json:"fields"`
|
||||
|
||||
// JobId The ID of the associated job.
|
||||
JobId string `json:"job_id"`
|
||||
|
||||
// LatestVersion The latest version of the collector.
|
||||
LatestVersion int32 `json:"latest_version"`
|
||||
|
||||
// MinimumCleanerVersion The minimum version for the document cleaner.
|
||||
MinimumCleanerVersion int32 `json:"minimum_cleaner_version"`
|
||||
|
||||
// MinimumTextVersion The minimum version for the text parser.
|
||||
MinimumTextVersion int32 `json:"minimum_text_version"`
|
||||
}
|
||||
|
||||
// JobCollectorCreate Payload for creating a JobCollector.
|
||||
type JobCollectorCreate struct {
|
||||
// ExampleProperty Example property for JobCollectorCreate.
|
||||
ExampleProperty *string `json:"example_property,omitempty"`
|
||||
// JobCollectorField The field properties for the job collector.
|
||||
type JobCollectorField struct {
|
||||
// Name The output field name.
|
||||
Name string `json:"name"`
|
||||
|
||||
// QueryId The query id that will populate the result.
|
||||
QueryId string `json:"query_id"`
|
||||
}
|
||||
|
||||
// JobCollectorUpdate Payload for updating a JobCollector.
|
||||
type JobCollectorUpdate struct {
|
||||
// ExampleProperty Example property for JobCollectorUpdate.
|
||||
ExampleProperty *string `json:"example_property,omitempty"`
|
||||
// ActiveVersion The active version of the collector.
|
||||
ActiveVersion *int32 `json:"active_version,omitempty"`
|
||||
|
||||
// Fields The fields in the job collector.
|
||||
Fields *[]JobCollectorField `json:"fields,omitempty"`
|
||||
|
||||
// MinimumCleanerVersion The minimum version for the document cleaner.
|
||||
MinimumCleanerVersion *int32 `json:"minimum_cleaner_version,omitempty"`
|
||||
|
||||
// MinimumTextVersion The minimum version for the text parser.
|
||||
MinimumTextVersion *int32 `json:"minimum_text_version,omitempty"`
|
||||
}
|
||||
|
||||
// ListQueries defines model for ListQueries.
|
||||
@@ -187,11 +214,8 @@ type QueryUpdate struct {
|
||||
// TriggerExportJSONRequestBody defines body for TriggerExport for application/json ContentType.
|
||||
type TriggerExportJSONRequestBody = ExportTrigger
|
||||
|
||||
// CreateJobCollectorJSONRequestBody defines body for CreateJobCollector for application/json ContentType.
|
||||
type CreateJobCollectorJSONRequestBody = JobCollectorCreate
|
||||
|
||||
// UpdateJobCollectorJSONRequestBody defines body for UpdateJobCollector for application/json ContentType.
|
||||
type UpdateJobCollectorJSONRequestBody = JobCollectorUpdate
|
||||
// UpdateJobCollectorByJobIdJSONRequestBody defines body for UpdateJobCollectorByJobId for application/json ContentType.
|
||||
type UpdateJobCollectorByJobIdJSONRequestBody = JobCollectorUpdate
|
||||
|
||||
// CreateQueryJSONRequestBody defines body for CreateQuery for application/json ContentType.
|
||||
type CreateQueryJSONRequestBody = QueryCreate
|
||||
@@ -205,20 +229,17 @@ type TestQueryJSONRequestBody = QueryTestRequest
|
||||
// ServerInterface represents all server handlers.
|
||||
type ServerInterface interface {
|
||||
// Trigger an export
|
||||
// (POST /export)
|
||||
// (POST /job/export)
|
||||
TriggerExport(ctx echo.Context) error
|
||||
// Check export state.
|
||||
// (GET /export/{id})
|
||||
// (GET /job/export/{id})
|
||||
ExportState(ctx echo.Context, id string) error
|
||||
// Create a job collector
|
||||
// (POST /job-collectors)
|
||||
CreateJobCollector(ctx echo.Context) error
|
||||
// Get a job collector by ID
|
||||
// (GET /job-collectors/{id})
|
||||
GetJobCollectorById(ctx echo.Context, id string) error
|
||||
// (GET /job/{id}/collector)
|
||||
GetJobCollectorByJobId(ctx echo.Context, id string) error
|
||||
// Update a job collector
|
||||
// (PUT /job-collectors/{id})
|
||||
UpdateJobCollector(ctx echo.Context, id string) error
|
||||
// (PATCH /job/{id}/collector)
|
||||
UpdateJobCollectorByJobId(ctx echo.Context, id string) error
|
||||
// List queries
|
||||
// (GET /queries)
|
||||
ListQueries(ctx echo.Context) error
|
||||
@@ -269,17 +290,8 @@ func (w *ServerInterfaceWrapper) ExportState(ctx echo.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateJobCollector converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) CreateJobCollector(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
// Invoke the callback with all the unmarshaled arguments
|
||||
err = w.Handler.CreateJobCollector(ctx)
|
||||
return err
|
||||
}
|
||||
|
||||
// GetJobCollectorById converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) GetJobCollectorById(ctx echo.Context) error {
|
||||
// GetJobCollectorByJobId converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) GetJobCollectorByJobId(ctx echo.Context) error {
|
||||
var err error
|
||||
// ------------- Path parameter "id" -------------
|
||||
var id string
|
||||
@@ -290,12 +302,12 @@ func (w *ServerInterfaceWrapper) GetJobCollectorById(ctx echo.Context) error {
|
||||
}
|
||||
|
||||
// Invoke the callback with all the unmarshaled arguments
|
||||
err = w.Handler.GetJobCollectorById(ctx, id)
|
||||
err = w.Handler.GetJobCollectorByJobId(ctx, id)
|
||||
return err
|
||||
}
|
||||
|
||||
// UpdateJobCollector converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) UpdateJobCollector(ctx echo.Context) error {
|
||||
// UpdateJobCollectorByJobId converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) UpdateJobCollectorByJobId(ctx echo.Context) error {
|
||||
var err error
|
||||
// ------------- Path parameter "id" -------------
|
||||
var id string
|
||||
@@ -306,7 +318,7 @@ func (w *ServerInterfaceWrapper) UpdateJobCollector(ctx echo.Context) error {
|
||||
}
|
||||
|
||||
// Invoke the callback with all the unmarshaled arguments
|
||||
err = w.Handler.UpdateJobCollector(ctx, id)
|
||||
err = w.Handler.UpdateJobCollectorByJobId(ctx, id)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -420,11 +432,10 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
|
||||
Handler: si,
|
||||
}
|
||||
|
||||
router.POST(baseURL+"/export", wrapper.TriggerExport)
|
||||
router.GET(baseURL+"/export/:id", wrapper.ExportState)
|
||||
router.POST(baseURL+"/job-collectors", wrapper.CreateJobCollector)
|
||||
router.GET(baseURL+"/job-collectors/:id", wrapper.GetJobCollectorById)
|
||||
router.PUT(baseURL+"/job-collectors/:id", wrapper.UpdateJobCollector)
|
||||
router.POST(baseURL+"/job/export", wrapper.TriggerExport)
|
||||
router.GET(baseURL+"/job/export/:id", wrapper.ExportState)
|
||||
router.GET(baseURL+"/job/:id/collector", wrapper.GetJobCollectorByJobId)
|
||||
router.PATCH(baseURL+"/job/:id/collector", wrapper.UpdateJobCollectorByJobId)
|
||||
router.GET(baseURL+"/queries", wrapper.ListQueries)
|
||||
router.POST(baseURL+"/queries", wrapper.CreateQuery)
|
||||
router.DELETE(baseURL+"/queries/:id", wrapper.DeprecateQuery)
|
||||
@@ -437,40 +448,42 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
|
||||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
"UleSoTLDcCUS1p6q7L7u/h8AAP//+pSl8AgsAAA=",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
||||
@@ -1,19 +1,44 @@
|
||||
package queryservice
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func (s *Controllers) GetJobCollectorById(ctx echo.Context, id string) error {
|
||||
return ctx.JSON(http.StatusOK, map[string]string{"status": "export triggered"})
|
||||
func (s *Controllers) GetJobCollectorByJobId(ctx echo.Context, jobId string) error {
|
||||
uid, err := uuid.Parse(jobId)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "Invalid ID")
|
||||
}
|
||||
|
||||
coll, err := s.svc.JobCollector.GetByJobID(ctx.Request().Context(), uid)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusNotFound, fmt.Sprintf("Unable to get collector: %s", err))
|
||||
}
|
||||
|
||||
fields := make([]JobCollectorField, len(coll.Fields))
|
||||
index := 0
|
||||
for name, id := range coll.Fields {
|
||||
fields[index] = JobCollectorField{
|
||||
Name: name,
|
||||
QueryId: id.String(),
|
||||
}
|
||||
index++
|
||||
}
|
||||
|
||||
return ctx.JSON(http.StatusOK, JobCollector{
|
||||
JobId: coll.JobID.String(),
|
||||
MinimumCleanerVersion: coll.MinCleanVersion,
|
||||
MinimumTextVersion: coll.MinTextVersion,
|
||||
ActiveVersion: coll.ActiveVersion,
|
||||
LatestVersion: coll.LatestVersion,
|
||||
Fields: fields,
|
||||
})
|
||||
}
|
||||
|
||||
func (s *Controllers) CreateJobCollector(ctx echo.Context) error {
|
||||
return ctx.JSON(http.StatusOK, map[string]string{"status": "export triggered"})
|
||||
}
|
||||
|
||||
func (s *Controllers) UpdateJobCollector(ctx echo.Context, id string) error {
|
||||
func (s *Controllers) UpdateJobCollectorByJobId(ctx echo.Context, jobId string) error {
|
||||
return ctx.JSON(http.StatusOK, map[string]string{"status": "export triggered"})
|
||||
}
|
||||
|
||||
@@ -1,32 +1,23 @@
|
||||
package queryservice_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
queryservice "queryorchestration/api/queryService"
|
||||
"queryorchestration/internal/database"
|
||||
"queryorchestration/internal/database/repository"
|
||||
"queryorchestration/internal/job/collector"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/go-playground/validator/v10"
|
||||
"github.com/google/uuid"
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/pashagolub/pgxmock/v3"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestCreateJobCollector(t *testing.T) {
|
||||
e := echo.New()
|
||||
req := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(""))
|
||||
rec := httptest.NewRecorder()
|
||||
ctx := e.NewContext(req, rec)
|
||||
|
||||
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{})
|
||||
|
||||
err := cons.CreateJobCollector(ctx)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, http.StatusOK, rec.Code)
|
||||
assert.NotEmpty(t, rec.Body.String())
|
||||
}
|
||||
|
||||
func TestUpdateJobCollector(t *testing.T) {
|
||||
e := echo.New()
|
||||
req := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(""))
|
||||
@@ -37,24 +28,59 @@ func TestUpdateJobCollector(t *testing.T) {
|
||||
|
||||
id := uuid.New()
|
||||
|
||||
err := cons.UpdateJobCollector(ctx, id.String())
|
||||
err := cons.UpdateJobCollectorByJobId(ctx, id.String())
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, http.StatusOK, rec.Code)
|
||||
assert.NotEmpty(t, rec.Body.String())
|
||||
}
|
||||
|
||||
func TestGetJobCollector(t *testing.T) {
|
||||
func TestGetJobCollectorByJobId(t *testing.T) {
|
||||
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,
|
||||
}
|
||||
|
||||
e := echo.New()
|
||||
req := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(""))
|
||||
rec := httptest.NewRecorder()
|
||||
ctx := e.NewContext(req, rec)
|
||||
|
||||
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{})
|
||||
svc := collector.New(db)
|
||||
cons := queryservice.NewControllers(validator.New(), &queryservice.Services{
|
||||
JobCollector: svc,
|
||||
})
|
||||
|
||||
id := uuid.New()
|
||||
coll := collector.Collector{
|
||||
ID: uuid.New(),
|
||||
JobID: uuid.New(),
|
||||
MinCleanVersion: int32(1),
|
||||
MinTextVersion: int32(2),
|
||||
}
|
||||
|
||||
err := cons.GetJobCollectorById(ctx, id.String())
|
||||
pool.ExpectQuery("name: GetCollectorByJobID :one").WithArgs(database.MustToDBUUID(coll.JobID)).
|
||||
WillReturnRows(
|
||||
pgxmock.NewRows([]string{"id", "jobId", "minCleanVersion", "minTextVersion", "activeVersion", "latestVersion", "fields"}).
|
||||
AddRow(database.MustToDBUUID(coll.ID), database.MustToDBUUID(coll.JobID), coll.MinCleanVersion, coll.MinTextVersion, int32(1), int32(2), []byte("")),
|
||||
)
|
||||
|
||||
err = cons.GetJobCollectorByJobId(ctx, coll.JobID.String())
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, http.StatusOK, rec.Code)
|
||||
assert.NotEmpty(t, rec.Body.String())
|
||||
|
||||
var res queryservice.JobCollector
|
||||
err = json.Unmarshal(rec.Body.Bytes(), &res)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualExportedValues(t, queryservice.JobCollector{
|
||||
JobId: coll.JobID.String(),
|
||||
MinimumCleanerVersion: coll.MinCleanVersion,
|
||||
MinimumTextVersion: coll.MinTextVersion,
|
||||
ActiveVersion: int32(1),
|
||||
LatestVersion: int32(2),
|
||||
Fields: []queryservice.JobCollectorField{},
|
||||
}, res)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user