package usercontroller import ( "net/http" ) type IController interface { POST(w http.ResponseWriter, r *http.Request) GET(w http.ResponseWriter, r *http.Request) DELETE(w http.ResponseWriter, r *http.Request) } type Controller struct { IController IController } func GenerateController(controller IController) Controller { return Controller { controller } } func (self Controller) ServeHTTP(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { self.POST(w, r) } if r.Method == "GET" { self.GET(w, r) } if r.Method == "DELETE" { self.DELETE(w, r) } } func (self Controller) POST(w http.ResponseWriter, r *http.Request) { self.IController.POST(w, r) } func (self Controller) GET(w http.ResponseWriter, r *http.Request) { self.IController.GET(w, r) } func (self Controller) DELETE(w http.ResponseWriter, r *http.Request) { self.IController.DELETE(w, r) }