gitch
1package tasks2
3import (4"github.com/pocketbase/dbx"5"github.com/pocketbase/pocketbase"6"github.com/pocketbase/pocketbase/models"7
8"gohome.4gophers.ru/kovardin/gitch/app/settings"9"gohome.4gophers.ru/kovardin/gitch/pkg/syncer"10)
11
12type Sync struct {13app *pocketbase.PocketBase14settings *settings.Settings15}
16
17func NewSync(app *pocketbase.PocketBase, settings *settings.Settings) *Sync {18w := &Sync{19app: app,20settings: settings,21}22
23return w24}
25
26func (t *Sync) Do(service *models.Record) {27projects, err := t.app.Dao().FindRecordsByFilter(28"projects",29"enabled = true && service = {:service}",30"-created",311000,320,33dbx.Params{"service": service.Id},34)35
36if err != nil {37t.app.Logger().Warn("error on get projects", "err", err)38}39
40for _, p := range projects {41if !p.GetBool("enabled") {42continue43}44
45s := syncer.New(46p.GetString("from"),47p.GetString("to"),48service.GetString("key"),49)50
51if err := s.Sync(); err != nil {52t.app.Logger().Error("error on sync project", "name", p.GetString("name"), "err", err)53}54}55}
56