Mercurial > gemma
diff cmd/wfs/dump.go @ 1608:427f9010b4a9
WFS download: Started with GET downloader (paged and unpaged).
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 17 Dec 2018 18:27:57 +0100 |
parents | |
children | 3093bab05c81 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cmd/wfs/dump.go Mon Dec 17 18:27:57 2018 +0100 @@ -0,0 +1,136 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2018 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package main + +import ( + "fmt" + + "gemma.intevation.de/gemma/pkg/wfs" +) + +func dump(caps *wfs.Capabilities) { + fmt.Println("service identification") + fmt.Println("----------------------") + fmt.Printf("title: %s\n", caps.ServiceIdentification.Title) + var abstract string + if len(caps.ServiceIdentification.Abstract) > 40 { + abstract = fmt.Sprintf("%.40s...", caps.ServiceIdentification.Abstract) + } else { + abstract = caps.ServiceIdentification.Abstract + } + fmt.Printf("abstract: %s\n", abstract) + if len(caps.ServiceIdentification.Keywords.Keywords) > 0 { + fmt.Println("keywords:") + for _, kw := range caps.ServiceIdentification.Keywords.Keywords { + fmt.Printf("\t%s\n", kw.Value) + } + } + fmt.Printf("type: %s\n", caps.ServiceIdentification.ServiceType) + fmt.Printf("version: %s\n", caps.ServiceIdentification.ServiceTypeVersion) + fmt.Println() + fmt.Println("operations meta data") + fmt.Println("--------------------") + if len(caps.OperationsMetadata.Operations) > 0 { + fmt.Println("operations:") + for _, operation := range caps.OperationsMetadata.Operations { + fmt.Printf("\t%s\n", operation.Name) + if operation.DCP.HTTP.Get != nil { + fmt.Printf("\t\tGet: %s\n", operation.DCP.HTTP.Get.HRef) + } + if operation.DCP.HTTP.Post != nil { + fmt.Printf("\t\tPost: %s\n", operation.DCP.HTTP.Post.HRef) + } + + if len(operation.Parameters) > 0 { + fmt.Println("\t\tparameters:") + for _, p := range operation.Parameters { + fmt.Printf("\t\t\tparameter: %s\n", p.Name) + for _, av := range p.AllowedValues.Values { + fmt.Printf("\t\t\t\t%s\n", av.Value) + } + } + } + if len(operation.Constraints) > 0 { + fmt.Println("\t\tconstraints:") + for _, c := range operation.Constraints { + fmt.Printf("\t\t\tname: %s\n", c.Name) + if c.DefaultValue != nil { + fmt.Printf("\t\t\t\tdefault: %s\n", c.DefaultValue.Value) + } + if len(c.AllowedValues.Values) > 0 { + fmt.Println("\t\t\tallowed values:") + for _, av := range c.AllowedValues.Values { + fmt.Printf("\t\t\t\t%s", av.Value) + } + } + } + } + } + } + if len(caps.OperationsMetadata.Constraints) > 0 { + fmt.Println("constraints:") + for _, c := range caps.OperationsMetadata.Constraints { + fmt.Printf("\tname: %s\n", c.Name) + if c.DefaultValue != nil { + fmt.Printf("\t\tdefault: %s\n", c.DefaultValue.Value) + } + if len(c.AllowedValues.Values) > 0 { + fmt.Println("\tallowed values:") + for _, av := range c.AllowedValues.Values { + fmt.Printf("\t\t%s\n", av.Value) + } + } + } + } + fmt.Println() + fmt.Println("feature type list") + fmt.Println("------------------") + if len(caps.FeatureTypeList.FeatureTypes) > 0 { + fmt.Println("features:") + for _, ft := range caps.FeatureTypeList.FeatureTypes { + fmt.Printf("\tname: %s\n", ft.Name) + fmt.Printf("\ttitle: %s\n", ft.Title) + var abstract string + if len(ft.Abstract) > 40 { + abstract = fmt.Sprintf("%.40s...", ft.Abstract) + } else { + abstract = ft.Abstract + } + fmt.Printf("\tabstract: %s\n", abstract) + fmt.Printf("\tdefault CRS: %s\n", ft.DefaultCRS) + if len(ft.OtherCRSs) > 0 { + fmt.Println("\tother CRSs:") + for _, crs := range ft.OtherCRSs { + fmt.Printf("\t\t%s\n", crs) + } + } + if ft.WGS84BoundingBox != nil { + fmt.Printf("\tWGS84 bounding box: (%s) - (%s)\n", + ft.WGS84BoundingBox.LowerCorner, ft.WGS84BoundingBox.UpperCorner) + } + if len(ft.Keywords.Keywords) > 0 { + fmt.Println("\tkeywords:") + for _, kw := range ft.Keywords.Keywords { + fmt.Printf("\t\t%s\n", kw.Value) + } + } + if len(ft.Namespaces) > 0 { + fmt.Println("\tnamespaces:") + for _, ns := range ft.Namespaces { + fmt.Printf("\t\t%s:%s\n", ns.Space, ns.Local) + } + } + } + } +}