jobs-monorepo/packages/api/app/app.go
2025-11-01 10:59:58 +05:00

34 lines
770 B
Go

package app
import (
"database/sql"
"github.com/gorilla/mux"
"github.com/jobs-scraper/packages/api/commands/job"
"github.com/jobs-scraper/shared/infrastructure/rabbitmq"
"github.com/jobs-scraper/shared/ports"
"github.com/jobs-scraper/shared/repo"
"github.com/jobs-scraper/shared/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),
},
}
}