34 lines
760 B
Go
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),
|
|
},
|
|
}
|
|
}
|