37 lines
540 B
Go
37 lines
540 B
Go
package rest
|
|
|
|
import (
|
|
"database/sql"
|
|
"sync"
|
|
|
|
"github.com/marcopeocchi/yt-dlp-web-ui/server/internal"
|
|
)
|
|
|
|
var (
|
|
service *Service
|
|
handler *Handler
|
|
|
|
serviceOnce sync.Once
|
|
handlerOnce sync.Once
|
|
)
|
|
|
|
func ProvideService(db *sql.DB, mdb *internal.MemoryDB, mq *internal.MessageQueue) *Service {
|
|
serviceOnce.Do(func() {
|
|
service = &Service{
|
|
mdb: mdb,
|
|
db: db,
|
|
mq: mq,
|
|
}
|
|
})
|
|
return service
|
|
}
|
|
|
|
func ProvideHandler(svc *Service) *Handler {
|
|
handlerOnce.Do(func() {
|
|
handler = &Handler{
|
|
service: svc,
|
|
}
|
|
})
|
|
return handler
|
|
}
|