forked from owulveryck/toscaviewer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebroutes.go
75 lines (68 loc) · 1.54 KB
/
webroutes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package toscaviewer
import (
"github.com/gorilla/mux"
"github.com/owulveryck/toscalib"
"net/http"
)
type route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
}
type routes []route
// NewRouter is a new router instance.
func NewRouter(toscaTemplate *toscalib.ToscaDefinition) *mux.Router {
// Initializing the ToscaGraph structure
type ToscaDefinition toscalib.ToscaDefinition
var toscaGraph ToscaGraph
toscaGraph.ToscaDefinition = toscaTemplate
toscaGraph.Initialize()
// This is the web display
// Definition des routes
var routes = routes{
route{
"Tosca diagram",
"GET",
"/tosca.svg",
(&toscaGraph).ViewToscaDefinition,
},
route{
"Execution workflow",
"GET",
"/workflow.svg",
(&toscaGraph).ViewToscaWorkflow,
},
route{
"Tosca",
"GET",
"/tosca.yaml",
(&toscaGraph).ViewToscaYaml,
},
route{
"Upload Tosca",
"POST",
"/upload",
(&toscaGraph).UploadHandler,
},
route{
"Get State",
"GET",
"/getstate.json",
(&toscaGraph).GetState,
},
}
router := mux.NewRouter().StrictSlash(true)
//router.Headers("Content-Type", "application/json", "X-Requested-With", "XMLHttpRequest")
for _, route := range routes {
router.
Methods(route.Method).
Path(route.Pattern).
Name(route.Name).
Handler(route.HandlerFunc)
}
// Define the access to the root of the web
router.PathPrefix("/").Handler(http.FileServer(http.Dir("../htdocs/")))
router.Headers("Cache-Control", "no-cache, no-store, must-revalidate")
return router
}