Skip to content

Commit

Permalink
feat(server): support groups in datacatalogv3
Browse files Browse the repository at this point in the history
  • Loading branch information
rot1024 committed Mar 25, 2024
1 parent 4089a68 commit 1a7055f
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 6 deletions.
12 changes: 7 additions & 5 deletions server/datacatalog/datacatalogv3/cms_model.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ type PlateauFeatureItem struct {
Desc string `json:"desc,omitempty" cms:"desc,textarea"`
Items []PlateauFeatureItemDatum `json:"items,omitempty" cms:"items,group"`
Dic string `json:"dic,omitempty" cms:"dic,textarea"`
Group string `json:"group,omitempty" cms:"group,text"`
MaxLOD string `json:"maxlod,omitempty" cms:"maxlod,-"`
// metadata
Sample bool `json:"sample,omitempty" cms:"sample,bool,metadata"`
Expand All @@ -173,11 +174,12 @@ func (c PlateauFeatureItem) ReadDic() (d Dic, _ error) {
}

type PlateauFeatureItemDatum struct {
ID string `json:"id,omitempty" cms:"id"`
Data []string `json:"data,omitempty" cms:"data,-"`
Name string `json:"name,omitempty" cms:"name,text"`
Desc string `json:"desc,omitempty" cms:"desc,textarea"`
Key string `json:"key,omitempty" cms:"key,text"`
ID string `json:"id,omitempty" cms:"id"`
Data []string `json:"data,omitempty" cms:"data,-"`
Name string `json:"name,omitempty" cms:"name,text"`
Desc string `json:"desc,omitempty" cms:"desc,textarea"`
Key string `json:"key,omitempty" cms:"key,text"`
Group string `json:"group,omitempty" cms:"group,text"`
// Simple indicates that this item should not use subcode and subname
Simple bool `json:"simple,omitempty" cms:"-"`
}
Expand Down
1 change: 1 addition & 0 deletions server/datacatalog/datacatalogv3/conv_dataset_plateau.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ func seedToDataset(seed plateauDatasetSeed) (res *plateauapi.PlateauDataset, war
PlateauSpecMinorID: seed.Spec.ID,
River: seed.River,
Admin: seed.Admin,
Groups: seed.Groups,
Items: items,
}

Expand Down
14 changes: 14 additions & 0 deletions server/datacatalog/datacatalogv3/conv_dataset_plateau_seed.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ type plateauDatasetSeed struct {
TargetArea plateauapi.Area
WardID *plateauapi.ID
WardCode *plateauapi.AreaCode
Groups []string
// common
DatasetType *plateauapi.PlateauDatasetType
Dic Dic
Expand Down Expand Up @@ -61,6 +62,7 @@ func plateauDatasetSeedsFrom(i *PlateauFeatureItem, opts ToPlateauDatasetsOption
{
Data: i.Data,
Desc: i.Desc,
Group: i.Group,
Simple: true,
},
}
Expand Down Expand Up @@ -158,10 +160,16 @@ func plateauDatasetSeedFromItem(item PlateauFeatureItemDatum, dt *plateauapi.Pla
return a.B
})

var groups []string
if item.Group != "" {
groups = strings.Split(item.Group, "/")
}

res = plateauDatasetSeed{
AssetURLs: assetUrls,
Assets: assetNames,
Desc: item.Desc,
Groups: groups,
}

if !item.Simple {
Expand Down Expand Up @@ -246,6 +254,11 @@ func plateauDatasetSeedsFromBldg(i *PlateauFeatureItem, dt *plateauapi.PlateauDa
return
}

var groups []string
if i.Group != "" {
groups = strings.Split(i.Group, "/")
}

for _, ward := range wards {
wardCode := ward.Code.String()
assets := lo.Filter(assets, func(name lo.Tuple2[*AssetName, string], _ int) bool {
Expand All @@ -267,6 +280,7 @@ func plateauDatasetSeedsFromBldg(i *PlateauFeatureItem, dt *plateauapi.PlateauDa
WardID: lo.ToPtr(ward.ID),
WardCode: lo.ToPtr(ward.Code),
TargetArea: ward,
Groups: groups,
})
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -606,6 +606,7 @@ func TestPlateauDataset_ToDatasets_Veg(t *testing.T) {
}
]
}`,
Group: "group1/group2",
}

expected := []plateauapi.Dataset{
Expand All @@ -622,6 +623,7 @@ func TestPlateauDataset_ToDatasets_Veg(t *testing.T) {
TypeID: plateauapi.NewID("veg", plateauapi.TypeDatasetType),
TypeCode: "veg",
PlateauSpecMinorID: plateauapi.NewID("3.2", plateauapi.TypePlateauSpec),
Groups: []string{"group1", "group2"},
Admin: map[string]any{
"stage": string(stageBeta),
},
Expand Down Expand Up @@ -705,7 +707,8 @@ func TestPlateauDataset_ToDatasets_Gen(t *testing.T) {
Data: []string{
"https://example.com/11111_bar-shi_city_2023_citygml_1_op_gen_99_mvt_lod0.zip",
},
Desc: "desc!",
Desc: "desc!",
Group: "group",
},
},
Dic: `{
Expand Down Expand Up @@ -738,6 +741,7 @@ func TestPlateauDataset_ToDatasets_Gen(t *testing.T) {
Admin: map[string]any{
"stage": string(stageBeta),
},
Groups: []string{"group"},
Items: []*plateauapi.PlateauDatasetItem{
{
ID: plateauapi.NewID("11111_gen_99", plateauapi.TypeDatasetItem),
Expand Down

0 comments on commit 1a7055f

Please sign in to comment.