gitch

Форк
0
/
sync.go 
55 строк · 1.0 Кб
1
package tasks
2

3
import (
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

12
type Sync struct {
13
	app      *pocketbase.PocketBase
14
	settings *settings.Settings
15
}
16

17
func NewSync(app *pocketbase.PocketBase, settings *settings.Settings) *Sync {
18
	w := &Sync{
19
		app:      app,
20
		settings: settings,
21
	}
22

23
	return w
24
}
25

26
func (t *Sync) Do(service *models.Record) {
27
	projects, err := t.app.Dao().FindRecordsByFilter(
28
		"projects",
29
		"enabled = true && service = {:service}",
30
		"-created",
31
		1000,
32
		0,
33
		dbx.Params{"service": service.Id},
34
	)
35

36
	if err != nil {
37
		t.app.Logger().Warn("error on get projects", "err", err)
38
	}
39

40
	for _, p := range projects {
41
		if !p.GetBool("enabled") {
42
			continue
43
		}
44

45
		s := syncer.New(
46
			p.GetString("from"),
47
			p.GetString("to"),
48
			service.GetString("key"),
49
		)
50

51
		if err := s.Sync(); err != nil {
52
			t.app.Logger().Error("error on sync project", "name", p.GetString("name"), "err", err)
53
		}
54
	}
55
}
56

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.