github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/server/service/sync.go (about)

     1  package serverService
     2  
     3  import (
     4  	consts "github.com/easysoft/zendata/internal/pkg/const"
     5  	"github.com/easysoft/zendata/internal/pkg/domain"
     6  )
     7  
     8  type SyncService struct {
     9  	DefService       *DefService       `inject:""`
    10  	FieldService     *FieldService     `inject:""`
    11  	RangesService    *RangesService    `inject:""`
    12  	InstancesService *InstancesService `inject:""`
    13  	ConfigService    *ConfigService    `inject:""`
    14  	ExcelService     *ExcelService     `inject:""`
    15  	TextService      *TextService      `inject:""`
    16  	ReferService     *ReferService     `inject:""`
    17  	ResService       *ResService       `inject:""`
    18  }
    19  
    20  func (s *SyncService) SyncData() {
    21  	files := s.ResService.LoadRes("")
    22  
    23  	fileMap := map[string][]domain.ResFile{}
    24  	for _, fi := range files {
    25  		if fileMap[fi.ResType] == nil {
    26  			fileMap[fi.ResType] = make([]domain.ResFile, 0)
    27  		}
    28  
    29  		fileMap[fi.ResType] = append(fileMap[fi.ResType], fi)
    30  	}
    31  
    32  	s.DefService.Sync(fileMap[consts.ResTypeYaml])
    33  	s.RangesService.Sync(fileMap[consts.ResTypeRanges])
    34  	s.InstancesService.Sync(fileMap[consts.ResTypeInstances])
    35  	s.ConfigService.Sync(fileMap[consts.ResTypeConfig])
    36  
    37  	s.ExcelService.Sync(fileMap[consts.ResTypeExcel])
    38  	s.TextService.Sync(fileMap[consts.ResTypeText])
    39  }
    40  
    41  func NewSyncService(
    42  	defService *DefService,
    43  	fieldService *FieldService,
    44  	rangesService *RangesService,
    45  	instancesService *InstancesService,
    46  	configService *ConfigService,
    47  	excelService *ExcelService,
    48  	textService *TextService,
    49  	referService *ReferService,
    50  	resService *ResService) *SyncService {
    51  	return &SyncService{
    52  		DefService:       defService,
    53  		FieldService:     fieldService,
    54  		RangesService:    rangesService,
    55  		InstancesService: instancesService,
    56  		ConfigService:    configService,
    57  		ExcelService:     excelService,
    58  		TextService:      textService,
    59  		ReferService:     referService,
    60  		ResService:       resService,
    61  	}
    62  }