Include types from gonavitia/navitia

This commit is contained in:
nemunaire 2023-07-14 12:23:33 +02:00
commit 24b1102761
157 changed files with 26062 additions and 116 deletions

50
types/id.go Normal file
View file

@ -0,0 +1,50 @@
package types
import (
"strings"
"github.com/pkg/errors"
)
// An ID is used throughout the library, it is something used by the navitia API and useful to communicate with it.
type ID string
// Check for ID validity
func (id ID) Check() error {
if len(id) == 0 {
return errors.Errorf("ID invalid: an empty string \"\" is not a valid ID")
}
return nil
}
// typeNames stores navitia-side name of types that may appear in IDs
var typeNames = map[string]bool{
"network": true,
"line": true,
"route": true,
"stop_area": true,
"commercial_mode": true,
"physical_mode": true,
"company": true,
"admin": true,
"stop_point": true,
}
// Type gets the type of object this ID refers to.
//
// Possible types: network, line, route, stop_area, commercial_mode, physical_mode, company, admin, stop_point.
//
// This is just guessing, if no type is found, type returns an empty string.
func (id ID) Type() string {
splitted := strings.Split(string(id), ":")
if len(splitted) == 0 {
return ""
}
possible := splitted[0]
if typeNames[possible] {
return possible
}
return ""
}