cmsintegrationcommon

package
v0.0.0-...-95cd51a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const CityModel = "city"
View Source
const GeospatialjpData = "geospatialjp-data"
View Source
const GeospatialjpIndex = "geospatialjp-index"
View Source
const ModelPrefix = "plateau-"
View Source
const RelatedModel = "related"

Variables

This section is empty.

Functions

func CutStringRight

func CutStringRight(s string, sep string) (string, string)

func ExtractBaseFeatureType

func ExtractBaseFeatureType(code string) string

ExtractBaseFeatureType extracts the base feature type from a code. Examples: "bldg2" -> "bldg", "tran10" -> "tran", "bldg" -> "bldg"

func GenerateCMSID

func GenerateCMSID() string

func GetEffectiveConverter

func GetEffectiveConverter(featureItem *FeatureItem, cityItem *CityItem, specConverter string) string

GetEffectiveConverter returns the effective converter setting based on override priority: FeatureItem.Converter > CityItem.Converter > specConverter (PlateauSpec.Converter) > default (empty string)

func GetLastBracketContent

func GetLastBracketContent(s string) string

func GetMainItemWithMetadata

func GetMainItemWithMetadata(ctx context.Context, c cms.Interface, i *cms.Item) (_ *cms.Item, err error)

func IsDerivedFeatureType

func IsDerivedFeatureType(code string) bool

IsDerivedFeatureType returns true if the code is a derived feature type (e.g., "bldg2").

func TagFrom

func TagFrom(t fmt.Stringer) *cms.Tag

func TagIs

func TagIs(t *cms.Tag, v fmt.Stringer) bool

func TagIsNot

func TagIsNot(t *cms.Tag, v fmt.Stringer) bool

func ValidatePayload

func ValidatePayload(ctx context.Context, w *cmswebhook.Payload, cmsintegration string) bool

Types

type CMSMock

type CMSMock struct {
	cms.Interface
	MockGetItem             func(ctx context.Context, id string, asset bool) (*cms.Item, error)
	MockGetItemsPartially   func(ctx context.Context, id string, page, perPage int, asset bool) (*cms.Items, error)
	MockCreateItem          func(ctx context.Context, modelID string, fields []*cms.Field, metadataFields []*cms.Field) (*cms.Item, error)
	MockUpdateItem          func(ctx context.Context, id string, fields []*cms.Field, metadataFields []*cms.Field) (*cms.Item, error)
	MockAsset               func(ctx context.Context, id string) (*cms.Asset, error)
	MockUploadAsset         func(ctx context.Context, projectID, url string) (string, error)
	MockUploadAssetDirectly func(ctx context.Context, projectID, name string, r io.Reader, opts ...cms.UploadAssetOption) (string, error)
	MockCommentToItem       func(ctx context.Context, assetID, content string) error
	MockGetModels           func(ctx context.Context, projectID string) (*cms.Models, error)
}

func (*CMSMock) Asset

func (c *CMSMock) Asset(ctx context.Context, id string) (*cms.Asset, error)

func (*CMSMock) CommentToItem

func (c *CMSMock) CommentToItem(ctx context.Context, assetID, content string) error

func (*CMSMock) CreateItem

func (c *CMSMock) CreateItem(ctx context.Context, modelID string, fields []*cms.Field, metadataFields []*cms.Field) (*cms.Item, error)

func (*CMSMock) GetItem

func (c *CMSMock) GetItem(ctx context.Context, id string, asset bool) (*cms.Item, error)

func (*CMSMock) GetItemsPartially

func (c *CMSMock) GetItemsPartially(ctx context.Context, id string, page, perPage int, asset bool) (*cms.Items, error)

func (*CMSMock) GetModels

func (c *CMSMock) GetModels(ctx context.Context, projectID string) (*cms.Models, error)

func (*CMSMock) Reset

func (c *CMSMock) Reset()

func (*CMSMock) UpdateItem

func (c *CMSMock) UpdateItem(ctx context.Context, id string, fields []*cms.Field, metadataFields []*cms.Field) (*cms.Item, error)

func (*CMSMock) UploadAsset

func (c *CMSMock) UploadAsset(ctx context.Context, projectID, url string) (string, error)

func (*CMSMock) UploadAssetDirectly

func (c *CMSMock) UploadAssetDirectly(ctx context.Context, projectID, name string, r io.Reader, opts ...cms.UploadAssetOption) (string, error)

type CityItem

type CityItem struct {
	ID                string            `json:"id,omitempty" cms:"id"`
	Prefecture        string            `json:"prefecture,omitempty" cms:"prefecture,select"`
	CityName          string            `json:"city_name,omitempty" cms:"city_name,text"`
	CityNameEn        string            `json:"city_name_en,omitempty" cms:"city_name_en,text"`
	CityCode          string            `json:"city_code,omitempty" cms:"city_code,text"`
	Spec              string            `json:"spec,omitempty" cms:"spec,select"`
	OpenDataUrl       string            `json:"open_data_url,omitempty" cms:"open_data_url,url"`
	PRCS              PRCS              `json:"prcs,omitempty" cms:"prcs,select"`
	CodeLists         *cms.PublicAsset  `json:"codelists,omitempty" cms:"codelists,asset"`
	Schemas           *cms.PublicAsset  `json:"schemas,omitempty" cms:"schemas,asset"`
	Metadata          *cms.PublicAsset  `json:"metadata,omitempty" cms:"metadata,asset"`
	Specification     *cms.PublicAsset  `json:"specification,omitempty" cms:"specification,asset"`
	ObjectLists       *cms.PublicAsset  `json:"objectLists,omitempty" cms:"objectLists,asset"`
	Misc              *cms.PublicAsset  `json:"misc,omitempty" cms:"misc,asset"`
	References        map[string]string `json:"references,omitempty" cms:"-"`
	RelatedDataset    string            `json:"related_dataset,omitempty" cms:"related_dataset,reference"`
	GeospatialjpIndex string            `json:"geospatialjp-index,omitempty" cms:"geospatialjp-index,reference"`
	GeospatialjpData  string            `json:"geospatialjp-data,omitempty" cms:"geospatialjp-data,reference"`
	// FME/Flow converter override (empty means use PlateauSpec setting)
	Converter string `json:"converter,omitempty" cms:"converter,select"`
	// meatadata
	PlateauDataStatus string          `json:"plateau_data_status,omitempty" cms:"plateau_data_status,select,metadata"`
	CityPublic        bool            `json:"city_public,omitempty" cms:"city_public,bool,metadata"`
	SDKPublic         bool            `json:"sdk_public,omitempty" cms:"sdk_public,bool,metadata"`
	Public            map[string]bool `json:"public,omitempty" cms:"-"`
}

func CityItemFrom

func CityItemFrom(item *cms.Item, featureTypes []string) (i *CityItem)

func (*CityItem) CMSItem

func (i *CityItem) CMSItem(featureTypes []string) *cms.Item

func (*CityItem) ConvSettings

func (i *CityItem) ConvSettings() *ConvSettings

func (*CityItem) MetadataZipURLs

func (i *CityItem) MetadataZipURLs() []string

func (*CityItem) SpecMajorVersionInt

func (i *CityItem) SpecMajorVersionInt() int

type Config

type Config struct {
	// general
	Host     string
	Secret   string
	Debug    bool
	APIToken string
	// CMS
	CMSBaseURL       string
	CMSToken         string
	CMSIntegration   string
	CMSSystemProject string
	// geospatial.jp
	CkanBaseURL                    string
	CkanOrg                        string
	CkanToken                      string
	CkanPrivate                    bool
	DisableGeospatialjpPublication bool
	// dataconv
	DisableDataConv bool
	// FME common
	FMEMock bool
	// geospatial.jp v3
	GeospatialjpBuildType             string
	GeospatialjpCloudRunJobsJobName   string
	GeospatialjpCloudBuildMachineType string
	GeospatialjpCloudBuildProject     string
	GeospatialjpCloudBuildRegion      string
	GeospatialjpCloudBuildDiskSizeGb  int64
	// cloud build
	TaskImage  string
	GCPProject string
	GCPRegion  string
	// Flow
	FlowBaseURL string
	FlowToken   string

	// compat
	// geospatial.jp v2
	DisableGeospatialjpCatalogCheck bool
	// FME v2
	FMEBaseURL          string
	FMEBaseURLV2        string
	FMEToken            string
	FMESkipQualityCheck bool
}

type ConvSettings

type ConvSettings struct {
	FeatureType string `json:"featureType"`
	PRCS        string `json:"prcs"`
	Schemas     string `json:"schemas"`
	CodeLists   string `json:"codelists"`
	ObjectLists string `json:"objectLists"`
}

func (*ConvSettings) Merge

func (c *ConvSettings) Merge(other *ConvSettings) *ConvSettings

func (*ConvSettings) Validate

func (c *ConvSettings) Validate(qc bool) error

type ConvertionStatus

type ConvertionStatus string
const (
	ConvertionStatusNotStarted ConvertionStatus = "未実行"
	ConvertionStatusRunning    ConvertionStatus = "実行中"
	ConvertionStatusError      ConvertionStatus = "エラー"
	ConvertionStatusSuccess    ConvertionStatus = "成功"
)

func (ConvertionStatus) String

func (s ConvertionStatus) String() string

type FeatureItem

type FeatureItem struct {
	ID          string             `json:"id,omitempty" cms:"id"`
	City        string             `json:"city,omitempty" cms:"city,reference"`
	CityGML     string             `json:"citygml,omitempty" cms:"citygml,asset"`
	Data        []string           `json:"data,omitempty" cms:"data,asset"`
	Desc        string             `json:"desc,omitempty" cms:"desc,textarea"`
	Items       []FeatureItemDatum `json:"items,omitempty" cms:"items,group"`
	QCResult    string             `json:"qc_result,omitempty" cms:"qc_result,asset"`
	SearchIndex string             `json:"search_index,omitempty" cms:"search_index,asset"`
	Dic         string             `json:"dic,omitempty" cms:"dic,textarea"`
	MaxLOD      string             `json:"maxlod,omitempty" cms:"maxlod,asset"`
	FeatureType string             `json:"featureType,omitempty" cms:"feature_type,select"`

	// override city item's settings
	Spec        string           `json:"spec,omitempty" cms:"spec,select"`
	PRCS        string           `json:"prcs" cms:"prcs,text"`
	Schemas     *cms.PublicAsset `json:"schemas" cms:"schemas,asset"`
	CodeLists   *cms.PublicAsset `json:"codelists" cms:"codelists,asset"`
	ObjectLists *cms.PublicAsset `json:"objectLists" cms:"objectLists,asset"`
	// FME/Flow converter override (empty means use CityItem or PlateauSpec setting)
	Converter string `json:"converter,omitempty" cms:"converter,select"`

	// metadata
	SkipQCConv       *cms.Tag `json:"skip_qc_conv,omitempty" cms:"skip_qc_conv,tag,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"`
	LODStatStatus    *cms.Tag `json:"lodstat_status,omitempty" cms:"lodstat_status,tag,metadata"`
	MaxLODStatus     *cms.Tag `json:"maxlod_status,omitempty" cms:"maxlod_status,tag,metadata"`

	// compat
	SkipQC      bool `json:"skip_qc,omitempty" cms:"skip_qc,bool,metadata"`
	SkipConvert bool `json:"skip_conv,omitempty" cms:"skip_conv,bool,metadata"`

	// Flow fields for cancellation
	FlowRunID     string `json:"flow_run_id,omitempty" cms:"flow_run_id,text,metadata"`
	FlowTriggerID string `json:"flow_trigger_id,omitempty" cms:"flow_trigger_id,text,metadata"`
}

func FeatureItemFrom

func FeatureItemFrom(item *cms.Item) (i *FeatureItem)

func (*FeatureItem) CMSItem

func (i *FeatureItem) CMSItem() *cms.Item

func (*FeatureItem) ConvSettings

func (f *FeatureItem) ConvSettings() *ConvSettings

func (*FeatureItem) FeatureTypeCode

func (f *FeatureItem) FeatureTypeCode() string

func (*FeatureItem) IsQCAndConvSkipped

func (item *FeatureItem) IsQCAndConvSkipped() (skipQC bool, skipConv bool)

func (*FeatureItem) ReqType

func (item *FeatureItem) ReqType() ReqType

func (*FeatureItem) SpecMajorVersionInt

func (f *FeatureItem) SpecMajorVersionInt() int

type FeatureItemDatum

type FeatureItemDatum struct {
	ID   string   `json:"id,omitempty" cms:"id"`
	Data []string `json:"data,omitempty" cms:"data,asset"`
	Name string   `json:"name,omitempty" cms:"name,text"`
	Desc string   `json:"desc,omitempty" cms:"desc,textarea"`
	Key  string   `json:"key,omitempty" cms:"key,text"`
}

type GenericItem

type GenericItem struct {
	ID          string               `json:"id,omitempty" cms:"id"`
	City        string               `json:"city,omitempty" cms:"city,reference"`
	Name        string               `json:"name,omitempty" cms:"name,text"`
	Type        string               `json:"type,omitempty" cms:"type,text"`
	TypeEn      string               `json:"type_en,omitempty" cms:"type_en,text"`
	Datasets    []GenericItemDataset `json:"datasets,omitempty" cms:"datasets,group"`
	OpenDataUrl string               `json:"open-data-url,omitempty" cms:"open_data_url,url"`
	Year        string               `json:"year,omitempty" cms:"year,select"`
	// metadata
	Public bool `json:"public,omitempty" cms:"public,bool,metadata"`
	UseAR  bool `json:"use-ar,omitempty" cms:"use-ar,bool,metadata"`
}

func GenericItemFrom

func GenericItemFrom(item *cms.Item) (i *GenericItem)

func (*GenericItem) CMSItem

func (i *GenericItem) CMSItem() *cms.Item

type GenericItemDataset

type GenericItemDataset struct {
	ID         string `json:"id,omitempty" cms:"id"`
	Data       string `json:"data,omitempty" cms:"data,asset"`
	Desc       string `json:"desc,omitempty" cms:"desc,textarea"`
	DataURL    string `json:"url,omitempty" cms:"data_url,url"`
	DataFormat string `json:"data-format,omitempty" cms:"data_format,select"`
	LayerName  string `json:"layer-name,omitempty" cms:"layer_name,text"`
}

type GeospatialjpDataItem

type GeospatialjpDataItem struct {
	ID          string `json:"id,omitempty" cms:"id"`
	City        string `json:"city,omitempty" cms:"city,reference"`
	CityGML     string `json:"citygml,omitempty" cms:"citygml,asset"`
	PlateauData string `json:"converted-data,omitempty" cms:"plateau_data,asset"`
	RelatedData string `json:"related-data,omitempty" cms:"related_data,asset"`
	GenericData string `json:"generic-data,omitempty" cms:"generic_data,asset"`
	// metadata
	CityGMLMergeStatus        ConvertionStatus `json:"citygml_merge_status,omitempty" cms:"citygml_merge_status,select,metadata"`
	ConvertedDataMergeSatatus ConvertionStatus `json:"plateau_merge_status,omitempty" cms:"plateau_merge_status,select,metadata"`
	RelatedDataMergeStatus    ConvertionStatus `json:"related_merge_status,omitempty" cms:"related_merge_status,select,metadata"`
}

func GeospatialjpDataItemFrom

func GeospatialjpDataItemFrom(item *cms.Item) (i *GeospatialjpDataItem)

func (*GeospatialjpDataItem) CMSItem

func (i *GeospatialjpDataItem) CMSItem() *cms.Item

type GeospatialjpIndexItem

type GeospatialjpIndexItem struct {
	ID        string `json:"id,omitempty" cms:"id"`
	City      string `json:"city,omitempty" cms:"city,reference"`
	Title     string `json:"title,omitempty" cms:"title,text"`
	Desc      string `json:"desc,omitempty" cms:"desc,markdown"`
	Region    string `json:"region,omitempty" cms:"region,text"`
	Thumbnail string `json:"thumbnail,omitempty" cms:"thumbnail,asset"`
	// metadata
	Status ManagementStatus `json:"status,omitempty" cms:"status,select,metadata"`
}

func GeospatialjpIndexItemFrom

func GeospatialjpIndexItemFrom(item *cms.Item) (i *GeospatialjpIndexItem)

func (*GeospatialjpIndexItem) CMSItem

func (i *GeospatialjpIndexItem) CMSItem() *cms.Item

type ManagementStatus

type ManagementStatus string
const (
	ManagementStatusNotStarted ManagementStatus = "登録未着手"
	ManagementStatusRunning    ManagementStatus = "新規登録中"
	ManagementStatusSkip       ManagementStatus = "対象外"
	ManagementStatusDone       ManagementStatus = "登録済み"
	ManagementStatusReady      ManagementStatus = "確認可能"
)

func (ManagementStatus) String

func (s ManagementStatus) String() string

type PRCS

type PRCS string

func (PRCS) EPSGCode

func (s PRCS) EPSGCode() string

type RelatedItem

type RelatedItem struct {
	ID     string                      `json:"id,omitempty" cms:"id"`
	City   string                      `json:"city,omitempty" cms:"city,reference"`
	Items  map[string]RelatedItemDatum `json:"items,omitempty" cms:"-"`
	Merged string                      `json:"merged,omitempty" cms:"merged,asset"`
	// metadata
	Status        *cms.Tag            `json:"status,omitempty" cms:"status,tag,metadata"`
	ConvertStatus map[string]*cms.Tag `json:"conv_status,omitempty" cms:"-"`
	MergeStatus   *cms.Tag            `json:"merge_status,omitempty" cms:"merge_status,tag,metadata"`
	Merge         bool                `json:"merge,omitempty" cms:"merge,bool,metadata"`
}

func RelatedItemFrom

func RelatedItemFrom(item *cms.Item, relatedDataTypes []string) (i *RelatedItem)

func (*RelatedItem) CMSItem

func (i *RelatedItem) CMSItem(relatedDataTypes []string) *cms.Item

type RelatedItemDatum

type RelatedItemDatum struct {
	ID          string   `json:"id,omitempty" cms:"id"`
	Asset       []string `json:"asset,omitempty" cms:"asset,asset"`
	Converted   []string `json:"converted,omitempty" cms:"converted,asset"`
	Description string   `json:"description,omitempty" cms:"description,textarea"`
}

type ReqType

type ReqType string
const (
	ReqTypeQC     ReqType = "qc"
	ReqTypeConv   ReqType = "conv"
	ReqTypeQCConv ReqType = "qc_conv"
)

func ReqTypeFrom

func ReqTypeFrom(skipQC, skipConv bool) ReqType

func (ReqType) CMSStatus

func (t ReqType) CMSStatus(s ConvertionStatus) (qc ConvertionStatus, conv ConvertionStatus)

func (ReqType) Intersection

func (ty ReqType) Intersection(other ReqType) ReqType

func (ReqType) IsConv

func (r ReqType) IsConv() bool

func (ReqType) IsQC

func (r ReqType) IsQC() bool

func (ReqType) Normalize

func (ty ReqType) Normalize() ReqType

func (ReqType) Override

func (ty ReqType) Override(override ReqType) ReqType

func (ReqType) Title

func (r ReqType) Title() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL