mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 05:11:34 +00:00
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"tercul/internal/app"
|
|
"tercul/internal/jobs/linguistics"
|
|
"tercul/internal/platform/config"
|
|
log "tercul/internal/platform/log"
|
|
)
|
|
|
|
func main() {
|
|
log.LogInfo("Starting enrichment tool...")
|
|
|
|
// Load configuration from environment variables
|
|
config.LoadConfig()
|
|
|
|
// Initialize structured logger with appropriate log level
|
|
log.SetDefaultLevel(log.InfoLevel)
|
|
log.LogInfo("Starting Tercul enrichment tool",
|
|
log.F("environment", config.Cfg.Environment),
|
|
log.F("version", "1.0.0"))
|
|
|
|
// Build application components
|
|
appBuilder := app.NewApplicationBuilder()
|
|
if err := appBuilder.Build(); err != nil {
|
|
log.LogFatal("Failed to build application",
|
|
log.F("error", err))
|
|
}
|
|
defer appBuilder.Close()
|
|
|
|
// Get all works
|
|
works, err := appBuilder.GetApplication().WorkQueries.ListWorks(context.Background(), 1, 10000) // A bit of a hack, but should work for now
|
|
if err != nil {
|
|
log.LogFatal("Failed to get works",
|
|
log.F("error", err))
|
|
}
|
|
|
|
// Enqueue analysis for each work
|
|
for _, work := range works.Items {
|
|
err := linguistics.EnqueueAnalysisForWork(appBuilder.GetAsynq(), work.ID)
|
|
if err != nil {
|
|
log.LogError("Failed to enqueue analysis for work",
|
|
log.F("workID", work.ID),
|
|
log.F("error", err))
|
|
}
|
|
}
|
|
|
|
log.LogInfo("Enrichment tool finished.")
|
|
}
|