Skip to content
This repository has been archived by the owner on Apr 8, 2024. It is now read-only.

Commit

Permalink
fix(go): parsing tags in items in cmsintegrationv3
Browse files Browse the repository at this point in the history
  • Loading branch information
rot1024 committed Dec 22, 2023
1 parent 90da689 commit 3ba2035
Show file tree
Hide file tree
Showing 14 changed files with 177 additions and 568 deletions.
493 changes: 2 additions & 491 deletions go.work.sum

Large diffs are not rendered by default.

30 changes: 18 additions & 12 deletions server/cmsintegration/cmsintegrationv3/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ var relatedDataTypes = []string{

type ManagementStatus string

func (s ManagementStatus) String() string {
return string(s)
}

const (
ManagementStatusNotStarted ManagementStatus = "登録未着手"
ManagementStatusRunning ManagementStatus = "新規登録中"
Expand All @@ -70,6 +74,10 @@ const (

type ConvertionStatus string

func (s ConvertionStatus) String() string {
return string(s)
}

const (
ConvertionStatusNotStarted ConvertionStatus = "未実行"
ConvertionStatusRunning ConvertionStatus = "実行中"
Expand Down Expand Up @@ -159,12 +167,11 @@ type FeatureItem struct {
Dic string `json:"dic,omitempty" cms:"dic,textarea"`
MaxLOD string `json:"maxlod,omitempty" cms:"maxlod,asset"`
// metadata
Status ManagementStatus `json:"status,omitempty" cms:"status,select,metadata"`
SkipQC bool `json:"skip_qc,omitempty" cms:"skip_qc,bool,metadata"`
SkipConvert bool `json:"skip_conv,omitempty" cms:"skip_conv,bool,metadata"`
ConvertionStatus ConvertionStatus `json:"conv_status,omitempty" cms:"conv_status,select,metadata"`
QCStatus ConvertionStatus `json:"qc_status,omitempty" cms:"qc_status,select,metadata"`
SearchIndexStatus ConvertionStatus `json:"search_index_status,omitempty" cms:"search_index_status,select,metadata"`
SkipQC bool `json:"skip_qc,omitempty" cms:"skip_qc,bool,metadata"`
SkipConvert bool `json:"skip_conv,omitempty" cms:"skip_conv,bool,metadata"`
Status *cms.Tag `json:"status,omitempty" cms:"status,select,metadata"`
ConvertionStatus *cms.Tag `json:"conv_status,omitempty" cms:"conv_status,tag,metadata"`
QCStatus *cms.Tag `json:"qc_status,omitempty" cms:"qc_status,tag,metadata"`
}

type FeatureItemDatum struct {
Expand Down Expand Up @@ -197,9 +204,8 @@ type GenericItem struct {
OpenDataUrl string `json:"open-data-url,omitempty" cms:"open_data_url,url"`
Year string `json:"year,omitempty" cms:"year,select"`
// metadata
Status ManagementStatus `json:"status,omitempty" cms:"status,select,metadata"`
Public bool `json:"public,omitempty" cms:"public,bool,metadata"`
UseAR bool `json:"use-ar,omitempty" cms:"use-ar,bool,metadata"`
Public bool `json:"public,omitempty" cms:"public,bool,metadata"`
UseAR bool `json:"use-ar,omitempty" cms:"use-ar,bool,metadata"`
}

type GenericItemDataset struct {
Expand Down Expand Up @@ -230,9 +236,9 @@ type RelatedItem struct {
ConvertedAssets map[string][]string `json:"converted,omitempty" cms:"-"`
Merged string `json:"merged,omitempty" cms:"merged,asset"`
// metadata
ConvertStatus ConvertionStatus `json:"conv_status,omitempty" cms:"conv_status,select,metadata"`
MergeStatus ConvertionStatus `json:"merge_status,omitempty" cms:"merge_status,select,metadata"`
Public bool `json:"public,omitempty" cms:"public,bool,metadata"`
ConvertStatus *cms.Tag `json:"conv_status,omitempty" cms:"conv_status,tag,metadata"`
MergeStatus *cms.Tag `json:"merge_status,omitempty" cms:"merge_status,tag,metadata"`
Public bool `json:"public,omitempty" cms:"public,bool,metadata"`
}

func RelatedItemFrom(item *cms.Item) (i *RelatedItem) {
Expand Down
80 changes: 61 additions & 19 deletions server/cmsintegration/cmsintegrationv3/model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,25 +53,31 @@ func TestFeatureItemFrom(t *testing.T) {
ID: "id",
MetadataFields: []*cms.Field{
{
Key: "conv_status",
Type: "select",
Value: string(ConvertionStatusError),
Key: "conv_status",
Type: "tag",
Value: map[string]any{
"id": "xxx",
"name": string(ConvertionStatusError),
},
},
},
}

expected := &FeatureItem{
ID: "id",
ConvertionStatus: ConvertionStatusError,
ID: "id",
ConvertionStatus: &cms.Tag{
ID: "xxx",
Name: string(ConvertionStatusError),
},
}

expected2 := &cms.Item{
ID: "id",
MetadataFields: []*cms.Field{
{
Key: "conv_status",
Type: "select",
Value: ConvertionStatusError,
Type: "tag",
Value: "xxx",
},
},
}
Expand All @@ -87,25 +93,25 @@ func TestGenericItemFrom(t *testing.T) {
ID: "id",
MetadataFields: []*cms.Field{
{
Key: "status",
Type: "select",
Value: string(ManagementStatusDone),
Key: "public",
Type: "bool",
Value: true,
},
},
}

expected := &GenericItem{
ID: "id",
Status: ManagementStatusDone,
Public: true,
}

expected2 := &cms.Item{
ID: "id",
MetadataFields: []*cms.Field{
{
Key: "status",
Type: "select",
Value: ManagementStatusDone,
Key: "public",
Type: "bool",
Value: true,
},
},
}
Expand Down Expand Up @@ -139,8 +145,8 @@ func TestRelatedItemFrom(t *testing.T) {
MetadataFields: []*cms.Field{
{
Key: "conv_status",
Type: "select",
Value: ConvertionStatusSuccess,
Type: "tag",
Value: map[string]any{"id": "xxx", "name": string(ConvertionStatusSuccess)},
},
{
Key: "public",
Expand All @@ -159,12 +165,48 @@ func TestRelatedItemFrom(t *testing.T) {
ConvertedAssets: map[string][]string{
"park": {"PARK_CONV"},
},
ConvertStatus: ConvertionStatusSuccess,
Public: true,
ConvertStatus: &cms.Tag{
ID: "xxx",
Name: string(ConvertionStatusSuccess),
},
Public: true,
}

expected2 := &cms.Item{
ID: "id",
Fields: []*cms.Field{
{
Key: "park",
Type: "asset",
Value: []string{"PARK"},
},
{
Key: "park_conv",
Type: "asset",
Value: []string{"PARK_CONV"},
},
{
Key: "landmark",
Type: "asset",
Value: []string{"LANDMARK"},
},
},
MetadataFields: []*cms.Field{
{
Key: "conv_status",
Type: "tag",
Value: "xxx",
},
{
Key: "public",
Type: "bool",
Value: true,
},
},
}

relatedItem := RelatedItemFrom(item)
assert.Equal(t, expected, relatedItem)
item2 := relatedItem.CMSItem()
assert.Equal(t, item, item2)
assert.Equal(t, expected2, item2)
}
4 changes: 2 additions & 2 deletions server/cmsintegration/cmsintegrationv3/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ func (s *Services) UpdateFeatureItemStatus(ctx context.Context, itemID string, c
}

fields := (&FeatureItem{
ConvertionStatus: convStatus,
QCStatus: qcStatus,
ConvertionStatus: tagFrom(convStatus),
QCStatus: tagFrom(qcStatus),
}).CMSItem().MetadataFields
_, err := s.CMS.UpdateItem(ctx, itemID, nil, fields)
if err != nil {
Expand Down
8 changes: 4 additions & 4 deletions server/cmsintegration/cmsintegrationv3/service_fme.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func sendRequestToFME(ctx context.Context, s *Services, conf *Config, w *cmswebh
}

item := FeatureItemFrom(mainItem)
if item.ConvertionStatus != "" && item.ConvertionStatus != ConvertionStatusNotStarted {
if tagIsNot(item.ConvertionStatus, ConvertionStatusNotStarted) {
log.Debugfc(ctx, "cmsintegrationv3: already converted")
return nil
}
Expand Down Expand Up @@ -175,7 +175,7 @@ func receiveResultFromFME(ctx context.Context, s *Services, conf *Config, f fmeR
}

item := (&FeatureItem{
QCStatus: ConvertionStatusSuccess,
QCStatus: tagFrom(ConvertionStatusSuccess),
QCResult: qcResultAsset,
}).CMSItem()

Expand Down Expand Up @@ -313,8 +313,8 @@ func receiveResultFromFME(ctx context.Context, s *Services, conf *Config, f fmeR
Items: items,
Dic: dic,
MaxLOD: maxlodAssetID,
ConvertionStatus: convStatus,
QCStatus: qcStatus,
ConvertionStatus: tagFrom(convStatus),
QCStatus: tagFrom(qcStatus),
QCResult: qcResult,
}).CMSItem()

Expand Down
30 changes: 15 additions & 15 deletions server/cmsintegration/cmsintegrationv3/service_fme_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ func TestSendRequestToFME(t *testing.T) {
Fields: []*cms.Field{
{
Key: "conv_status",
Value: string(ConvertionStatusSuccess),
Value: map[string]interface{}{"value": ConvertionStatusSuccess},
},
},
}, nil
Expand Down Expand Up @@ -294,7 +294,7 @@ func TestSendRequestToFME(t *testing.T) {
}
c.updateItem = func(ctx context.Context, id string, fields []*cms.Field, metadataFields []*cms.Field) (*cms.Item, error) {
assert.Equal(t, "conv_status", metadataFields[0].Key)
assert.Equal(t, ConvertionStatusRunning, metadataFields[0].Value)
assert.Equal(t, string(ConvertionStatusRunning), metadataFields[0].Value)
return nil, nil
}
c.commentToItem = func(ctx context.Context, assetID, content string) error {
Expand Down Expand Up @@ -375,7 +375,7 @@ func TestSendRequestToFME(t *testing.T) {
}
c.updateItem = func(ctx context.Context, id string, fields []*cms.Field, metadataFields []*cms.Field) (*cms.Item, error) {
assert.Equal(t, "conv_status", metadataFields[0].Key)
assert.Equal(t, ConvertionStatusRunning, metadataFields[0].Value)
assert.Equal(t, string(ConvertionStatusRunning), metadataFields[0].Value)
return nil, nil
}
c.commentToItem = func(ctx context.Context, assetID, content string) error {
Expand Down Expand Up @@ -493,13 +493,13 @@ func TestReceiveResultFromFME(t *testing.T) {
assert.Equal(t, []*cms.Field{
{
Key: "conv_status",
Type: "select",
Value: ConvertionStatusSuccess,
Type: "tag",
Value: string(ConvertionStatusSuccess),
},
{
Key: "qc_status",
Type: "select",
Value: ConvertionStatusSuccess,
Type: "tag",
Value: string(ConvertionStatusSuccess),
},
}, metadataFields)
return nil, nil
Expand Down Expand Up @@ -604,13 +604,13 @@ func TestReceiveResultFromFME(t *testing.T) {
assert.Equal(t, []*cms.Field{
{
Key: "conv_status",
Type: "select",
Value: ConvertionStatusSuccess,
Type: "tag",
Value: string(ConvertionStatusSuccess),
},
{
Key: "qc_status",
Type: "select",
Value: ConvertionStatusSuccess,
Type: "tag",
Value: string(ConvertionStatusSuccess),
},
}, metadataFields)
return nil, nil
Expand Down Expand Up @@ -641,13 +641,13 @@ func TestReceiveResultFromFME(t *testing.T) {
assert.Equal(t, []*cms.Field{
{
Key: "conv_status",
Type: "select",
Value: ConvertionStatusError,
Type: "tag",
Value: string(ConvertionStatusError),
},
{
Key: "qc_status",
Type: "select",
Value: ConvertionStatusError,
Type: "tag",
Value: string(ConvertionStatusError),
},
}, metadataFields)
return nil, nil
Expand Down
16 changes: 8 additions & 8 deletions server/cmsintegration/cmsintegrationv3/service_related.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func handleRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Payloa
}

func convertRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Payload, item *RelatedItem) (err error) {
if item.ConvertStatus != "" && item.ConvertStatus != ConvertionStatusNotStarted {
if tagIsNot(item.ConvertStatus, ConvertionStatusNotStarted) {
log.Debugfc(ctx, "cmsintegrationv3: already converted")
return nil
}
Expand All @@ -71,7 +71,7 @@ func convertRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Paylo

// update status
if _, err := s.CMS.UpdateItem(ctx, item.ID, nil, (&RelatedItem{
ConvertStatus: ConvertionStatusRunning,
ConvertStatus: tagFrom(ConvertionStatusRunning),
}).CMSItem().MetadataFields); err != nil {
return fmt.Errorf("failed to update item: %w", err)
}
Expand All @@ -82,7 +82,7 @@ func convertRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Paylo
}

if _, err := s.CMS.UpdateItem(ctx, item.ID, nil, (&RelatedItem{
MergeStatus: ConvertionStatusError,
MergeStatus: tagFrom(ConvertionStatusError),
}).CMSItem().MetadataFields); err != nil {
log.Warnf("cmsintegrationv3: failed to update item: %w", err)
}
Expand Down Expand Up @@ -154,7 +154,7 @@ func convertRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Paylo
// update item
ritem := (&RelatedItem{
ConvertedAssets: conv,
ConvertStatus: ConvertionStatusSuccess,
ConvertStatus: tagFrom(ConvertionStatusSuccess),
}).CMSItem()
if _, err := s.CMS.UpdateItem(ctx, item.ID, ritem.Fields, ritem.MetadataFields); err != nil {
return fmt.Errorf("failed to update item: %w", err)
Expand All @@ -174,7 +174,7 @@ func packRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Payload,
return nil
}

if item.MergeStatus != "" && item.MergeStatus != ConvertionStatusNotStarted {
if tagIsNot(item.MergeStatus, ConvertionStatusNotStarted) {
log.Debugfc(ctx, "cmsintegrationv3: already merged")
return nil
}
Expand All @@ -190,7 +190,7 @@ func packRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Payload,

// update status
if _, err := s.CMS.UpdateItem(ctx, item.ID, nil, (&RelatedItem{
MergeStatus: ConvertionStatusRunning,
MergeStatus: tagFrom(ConvertionStatusRunning),
}).CMSItem().MetadataFields); err != nil {
return fmt.Errorf("failed to update item: %w", err)
}
Expand All @@ -201,7 +201,7 @@ func packRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Payload,
}

if _, err := s.CMS.UpdateItem(ctx, item.ID, nil, (&RelatedItem{
MergeStatus: ConvertionStatusError,
MergeStatus: tagFrom(ConvertionStatusError),
}).CMSItem().MetadataFields); err != nil {
log.Warnf("cmsintegrationv3: failed to update item: %w", err)
}
Expand Down Expand Up @@ -311,7 +311,7 @@ func packRelatedDataset(ctx context.Context, s *Services, w *cmswebhook.Payload,
// update item
ritem := (&RelatedItem{
Merged: assetID,
MergeStatus: ConvertionStatusSuccess,
MergeStatus: tagFrom(ConvertionStatusSuccess),
}).CMSItem()

if _, err := s.CMS.UpdateItem(ctx, item.ID, ritem.Fields, ritem.MetadataFields); err != nil {
Expand Down
Loading

0 comments on commit 3ba2035

Please sign in to comment.