56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package job
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"rockhu-bot/local/service"
|
|
|
|
"github.com/bwmarrin/discordgo"
|
|
"github.com/robfig/cron/v3"
|
|
)
|
|
|
|
type ConcertJob struct {
|
|
service *service.ConcertService
|
|
cron *cron.Cron
|
|
discord *discordgo.Session
|
|
}
|
|
|
|
// NewConcertJob
|
|
// Initializes ApiController.
|
|
//
|
|
// Args:
|
|
// *services.ConcertService: Concert service
|
|
// *Fiber.RouterGroup: Fiber Router Group
|
|
// Returns:
|
|
// *ConcertJob: Controller for "api" interactions
|
|
func NewConcertJob(as *service.ConcertService, cron *cron.Cron, dsc *discordgo.Session) *ConcertJob {
|
|
ac := &ConcertJob{
|
|
service: as,
|
|
cron: cron,
|
|
discord: dsc,
|
|
}
|
|
|
|
cron.AddFunc(os.Getenv("CONCERT_CRON"), ac.checkAndUpdate)
|
|
return ac
|
|
}
|
|
|
|
// checkAndUpdate returns Concert
|
|
//
|
|
// @Summary Return Concert
|
|
// @Description Return Concert
|
|
// @Tags Concert
|
|
// @Success 200 {array} string
|
|
// @Router /v1/Concert [get]
|
|
func (ac *ConcertJob) checkAndUpdate() {
|
|
fmt.Print("Started CheckAndUpdate")
|
|
ctx := context.Background()
|
|
newConcerts := ac.service.CheckAndUpdateConcerts(ctx)
|
|
fmt.Print("Finished CheckAndUpdate")
|
|
|
|
if len(newConcerts) > 0 {
|
|
ac.
|
|
}
|
|
|
|
}
|