MCPcopy Create free account
hub / github.com/cloudwan/gohan / mapRoutes

Method mapRoutes

server/server.go:77–126  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

75}
76
77func (server *Server) mapRoutes() {
78 config := util.GetConfig()
79 schemaManager := schema.GetManager()
80 MapNamespacesRoutes(server.martini)
81 MapRouteBySchemas(server, server.db)
82
83 if txErr := db.Within(server.db, func(tx transaction.Transaction) error {
84 coreSchema, _ := schemaManager.Schema("schema")
85 if coreSchema == nil {
86 return fmt.Errorf("Gohan core schema not found")
87 }
88
89 policySchema, _ := schemaManager.Schema("policy")
90 policyList, _, err := tx.List(policySchema, nil, nil, nil)
91 if err != nil {
92 return err
93 }
94
95 if err = schemaManager.LoadPolicies(policyList); err != nil {
96 return err
97 }
98
99 extensionSchema, _ := schemaManager.Schema("extension")
100 extensionList, _, err := tx.List(extensionSchema, nil, nil, nil)
101 if err != nil {
102 return err
103 }
104 if err := schemaManager.LoadExtensions(extensionList); err != nil {
105 return fmt.Errorf("failed to load extensions: %s", err)
106 }
107
108 namespaceSchema, _ := schemaManager.Schema("namespace")
109 if namespaceSchema == nil {
110 return fmt.Errorf("No gohan schema. Disabling schema editing mode")
111 }
112 namespaceList, _, err := tx.List(namespaceSchema, nil, nil, nil)
113 if err != nil {
114 return err
115 }
116 schemaManager.LoadNamespaces(namespaceList)
117
118 if config.GetBool("keystone/fake", false) {
119 middleware.FakeKeystone(server.martini)
120 }
121
122 return nil
123 }); txErr != nil {
124 log.Fatal(txErr)
125 }
126}
127
128func (server *Server) addOptionsRoute() {
129 server.martini.AddRoute("OPTIONS", ".*", func(w http.ResponseWriter, r *http.Request) {

Callers 2

NewServerFunction · 0.95
setupEditorFunction · 0.80

Calls 11

MapNamespacesRoutesFunction · 0.85
MapRouteBySchemasFunction · 0.85
LoadPoliciesMethod · 0.80
LoadExtensionsMethod · 0.80
LoadNamespacesMethod · 0.80
GetBoolMethod · 0.80
FatalMethod · 0.80
WithinMethod · 0.65
SchemaMethod · 0.65
ErrorfMethod · 0.65
ListMethod · 0.65

Tested by

no test coverage detected