package queryrunner import ( "context" "encoding/json" resultset "queryorchestration/internal/query/result/set" "github.com/go-playground/validator/v10" "github.com/aws/aws-sdk-go-v2/service/sqs/types" ) const Name = "queryRunner" type Services struct { ResultSet *resultset.Service } type Runner struct { validator *validator.Validate svc *Services } func New(validator *validator.Validate, svc *Services) Runner { return Runner{ validator: validator, svc: svc, } } func (s *Runner) Process(ctx context.Context, req *types.Message) error { var body resultset.Set err := json.Unmarshal([]byte(*req.Body), &body) if err != nil { return err } err = s.validator.Struct(body) if err != nil { return err } err = s.svc.ResultSet.Set(ctx, &resultset.Set{ DocumentID: body.DocumentID, QueryID: body.QueryID, }) if err != nil { return err } return nil }