/
Router.go
72 lines (57 loc) · 2.07 KB
/
Router.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
package main
import (
"fmt"
"github.com/att-innovate/boomer/handler"
"github.com/gorilla/mux"
"net/http"
)
type Route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
}
type Routes []Route
func Index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Welcome to Boomer")
}
func NewRouter() *mux.Router {
router := mux.NewRouter().StrictSlash(true)
for _, route := range routes {
router.
Methods(route.Method).
Path(route.Pattern).
Name(route.Name).
Handler(route.HandlerFunc)
}
return router
}
var routes = Routes{
Route{"Index", "GET", "/", Index},
Route{"AddUser", "POST", "/user", handler.AddUser},
Route{"GetUser", "GET", "/user/{Userid}", handler.GetUser},
Route{"GetUsers", "GET", "/user", handler.GetUsers},
Route{"UpdateUser", "POST", "/user/{Userid}", handler.UpdateUser},
Route{"DeleteUser", "DELETE", "/user/{Userid}", handler.DeleteUser},
Route{"GetUserCpe", "GET", "/user/{Userid}/cpe", handler.GetUserCpe},
Route{"Login", "GET", "/login", handler.Login},
Route{"AddCpe", "POST", "/cpe", handler.AddCpe},
Route{"UpdateCpe", "POST", "/cpe/{Cpeid}", handler.UpdateCpe},
Route{"DeleteUser", "DELETE", "/cpe/{Cpeid}", handler.DeleteCpe},
Route{"GetCpe", "GET", "/cpe/{Cpeid}", handler.GetCpe},
Route{"GetCpes", "GET", "/cpe", handler.GetCpes},
Route{"AddTopo", "POST", "/topo", handler.AddTopo},
Route{"GetTopo", "GET", "/topo/{Topoid}", handler.GetTopo},
Route{"GetTopos", "GET", "/topo", handler.GetTopos},
Route{"UpdateTopo", "POST", "/topo/{Topoid}", handler.UpdateTopo},
Route{"DeleteTopo", "DELETE", "/topo/{Topoid}", handler.DeleteTopo},
Route{"AddVnf", "POST", "/vnf", handler.AddVnf},
Route{"GetVnf", "GET", "/vnf/{Vnfid}", handler.GetVnf},
Route{"GetVnfs", "GET", "/vnf", handler.GetVnfs},
Route{"UpdateVnf", "POST", "/vnf/{Vnfid}", handler.UpdateVnf},
Route{"DeleteVnf", "DELETE", "/vnf/{Vnfid}", handler.DeleteVnf},
// TODO:: Implement Route
Route{"GetCpeTopo", "GET", "/cpe/{Cpeid}/topo", handler.GetCpeTopo},
// TODO: APIs for the VNFs we have
//APIs ffor the Router and FW
}