Mercurial > gemma
view cmd/wfs/main.go @ 1596:74413d52c439
Started with WFS Capabilities parser.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 14 Dec 2018 18:35:09 +0100 |
parents | |
children | 5e16d1fbe91f |
line wrap: on
line source
// 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 ( "bufio" "flag" "fmt" "log" "os" "gemma.intevation.de/gemma/pkg/wfs" ) func loadCapabilities(fname string) (*wfs.Capabilities, error) { f, err := os.Open(fname) if err != nil { return nil, err } defer f.Close() return wfs.ParseCapabilities(bufio.NewReader(f)) } func main() { flag.Parse() for _, arg := range flag.Args() { caps, err := loadCapabilities(arg) if err != nil { log.Fatalf("error: %v\n", err) } fmt.Printf("title: %s\n", caps.ServiceIdentification.Title) fmt.Printf("type: %s\n", caps.ServiceIdentification.ServiceType) fmt.Printf("version: %s\n", caps.ServiceIdentification.ServiceTypeVersion) 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) } for _, p := range operation.Parameters { fmt.Printf("\t\tparameter: %s\n", p.Name) for _, av := range p.AllowedValues.AllowedValues { fmt.Printf("\t\t\t%s\n", av.Value) } } } } }