jobs-monorepo/api/app/app.go
Elshimy Ziad Magdy Taha 23372eb2c4 rabbitmq
2025-10-11 13:55:38 +05:00

34 lines
760 B
Go

package app
import (
"database/sql"
"github.com/gorilla/mux"
"github.com/jobs-scraper/api/commands/job"
"github.com/jobs-scraper/infrastructure/rabbitmq"
"github.com/jobs-scraper/internal/ports"
"github.com/jobs-scraper/internal/repo"
"github.com/jobs-scraper/internal/server"
)
type Application struct {
Router *mux.Router
DB *sql.DB
Server *server.AppServer
JobCommands *ports.JobCommands
}
func NewApplication(router *mux.Router, db *sql.DB, rmq *rabbitmq.RabbitMQClient) *Application {
s := server.NewServer(router)
jobRepo := repo.NewJobRepository(db)
return &Application{
Server: s,
Router: router,
DB: db,
JobCommands: &ports.JobCommands{
CreateJob: job.NewCreateJobHandler(jobRepo, rmq),
},
}
}