github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/pkg/service/res-ranges.go (about) 1 package service 2 3 import ( 4 "github.com/easysoft/zendata/internal/pkg/domain" 5 "github.com/jinzhu/copier" 6 ) 7 8 type ResRangesService struct { 9 ResService *ResService `inject:""` 10 FieldService *FieldService `inject:""` 11 } 12 13 func (s *ResRangesService) GetResFromRanges(ranges domain.ResRanges) map[string][]interface{} { 14 groupedValue := map[string][]interface{}{} 15 16 for group, expression := range ranges.Ranges { 17 fieldFromRanges := s.ConvertRangesToField(ranges, expression) 18 19 s.FieldService.Generate(&fieldFromRanges, true) 20 21 groupedValue[group] = fieldFromRanges.Values 22 } 23 24 return groupedValue 25 } 26 27 func (s *ResRangesService) ConvertRangesToField(ranges domain.ResRanges, expression string) (field domain.DefField) { 28 field.Note = "ConvertedFromRanges" 29 30 copier.Copy(&field, ranges) 31 field.Range = expression 32 33 return field 34 }