43 lines
957 B
Go
43 lines
957 B
Go
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)
|
|
}
|