mirror of
https://github.com/FJurmanovic/wallet-go-api.git
synced 2026-02-06 06:08:16 +00:00
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package job
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"wallet-api/pkg/service"
|
|
"wallet-api/pkg/utl/common"
|
|
|
|
"github.com/go-co-op/gocron"
|
|
)
|
|
|
|
type CurrencyController struct {
|
|
service *service.CurrencyService
|
|
logger *log.Logger
|
|
scheduler *gocron.Scheduler
|
|
}
|
|
|
|
/*
|
|
NewCurrencyJob
|
|
|
|
Initializes CurrencyJob.
|
|
|
|
Args:
|
|
*services.CurrencyService: Currency service
|
|
*gin.RouterGroup: Gin Router Group
|
|
Returns:
|
|
*CurrencyJob: Job for "Currency" route interactions
|
|
*/
|
|
func NewCurrencyJob(as *service.CurrencyService, scheduler *gocron.Scheduler, logger *log.Logger) *CurrencyController {
|
|
currencyScheduler := scheduler.Tag("currency")
|
|
|
|
wc := &CurrencyController{
|
|
service: as,
|
|
logger: logger,
|
|
scheduler: currencyScheduler,
|
|
}
|
|
|
|
_, err := currencyScheduler.Every(1).Days().Do(wc.Sync)
|
|
common.CheckError(err)
|
|
currencyScheduler.StartAsync()
|
|
|
|
log.Println("CurrencyJob started")
|
|
|
|
return wc
|
|
}
|
|
|
|
func (wc *CurrencyController) Sync() {
|
|
wc.logger.Println("CurrencyJob: Syncing currencies")
|
|
ctx := context.Background()
|
|
wc.service.Sync(ctx)
|
|
wc.logger.Println("CurrencyJob: Syncing currencies done")
|
|
}
|