Files
query-orchestration/cmd/queue/main.go
T

55 lines
1.1 KiB
Go
Raw Normal View History

2024-12-18 18:54:48 +00:00
package main
import (
"context"
"log"
2024-12-24 18:11:25 +00:00
"os"
2024-12-24 17:13:48 +00:00
"queryorchestration/api/queue"
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/document"
"queryorchestration/internal/env"
"queryorchestration/internal/otel"
queueSVC "queryorchestration/internal/queue"
2024-12-18 18:54:48 +00:00
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/sqs"
2024-12-23 16:49:53 +00:00
"github.com/go-playground/validator/v10"
2024-12-18 18:54:48 +00:00
)
func main() {
ctx := context.Background()
closeTracer := otel.Init(ctx)
defer closeTracer()
2024-12-24 18:11:25 +00:00
database.RunMigrations(os.Getenv("PWD"))
2024-12-18 18:54:48 +00:00
cfg, err := config.LoadDefaultConfig(ctx)
if err != nil {
2024-12-24 18:11:25 +00:00
log.Panicf("Unable to load SDK config: %v", err)
2024-12-18 18:54:48 +00:00
}
2024-12-24 18:11:25 +00:00
queueURL := env.GetPanic("QUEUE_URL")
2024-12-18 18:54:48 +00:00
sqsClient := sqs.NewFromConfig(cfg)
conn := database.GetDBConn(ctx)
db := repository.New(conn)
2024-12-23 16:49:53 +00:00
valid := validator.New()
2024-12-18 18:54:48 +00:00
controllers := queue.Controllers{
2024-12-23 16:49:53 +00:00
Document: *queue.NewDocumentController(*document.New(db), valid),
2024-12-18 18:54:48 +00:00
}
config := queue.Queue{
Controllers: &controllers,
Config: &queueSVC.QueueConfig{
URL: queueURL,
Client: sqsClient,
},
}
queue.PollMessages(ctx, &config)
}