本文整理匯總了Golang中github.com/paulbellamy/mango.Stack.HandlerFunc方法的典型用法代碼示例。如果您正苦於以下問題:Golang Stack.HandlerFunc方法的具體用法?Golang Stack.HandlerFunc怎麽用?Golang Stack.HandlerFunc使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/paulbellamy/mango.Stack
的用法示例。
在下文中一共展示了Stack.HandlerFunc方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TestProducer
func TestProducer(t *testing.T) {
stack := new(mango.Stack)
handler := stack.HandlerFunc(pact.Producer)
testflight.WithServer(handler, func(r *testflight.Requester) {
pact_str, err := ioutil.ReadFile("../pacts/my_consumer-my_producer.json")
if err != nil {
t.Error(err)
}
pacts := make(map[string]interface{})
err = json.Unmarshal(pact_str, &pacts)
if err != nil {
t.Error(err)
}
for _, i := range pacts["interactions"].([]interface{}) {
interaction := i.(map[string]interface{})
t.Logf("Given %s", interaction["producer_state"])
t.Logf(" %s", interaction["description"])
request := interaction["request"].(map[string]interface{})
var actualResponse *testflight.Response
switch request["method"] {
case "get":
actualResponse = r.Get(request["path"].(string) + "?" + request["query"].(string))
}
expectedResponse := interaction["response"].(map[string]interface{})
assert.Equal(t, int(expectedResponse["status"].(float64)), actualResponse.StatusCode)
for k, v := range expectedResponse["headers"].(map[string]interface{}) {
assert.Equal(t, v, actualResponse.RawResponse.Header[k][0])
}
responseBody := make(map[string]interface{})
err = json.Unmarshal([]byte(actualResponse.Body), &responseBody)
if err != nil {
t.Error(err)
}
for _, diff := range pretty.Diff(expectedResponse["body"], responseBody) {
t.Log(diff)
}
assert.Equal(t, expectedResponse["body"], responseBody)
}
})
}
示例2: Mux
func Mux() (mux *http.ServeMux) {
p := pat.New()
sessionMW := mango.Sessions("f908b1c425062e95d30b8d30de7123458", "duoerl", &mango.CookieOptions{Path: "/", MaxAge: 3600 * 24 * 7})
rendererMW := middlewares.ProduceRenderer()
authenMW := middlewares.AuthenticateUser()
hardAuthenMW := middlewares.HardAuthenUser()
rHtml, rJson := middlewares.RespondHtml(), middlewares.RespondJson()
mainLayoutMW := middlewares.ProduceLayout(middlewares.MAIN_LAYOUT)
mainStack := new(mango.Stack)
mainStack.Middleware(mangogzip.Zipper, mangolog.Logger, sessionMW, authenMW, mainLayoutMW, rendererMW, rHtml)
mainAjaxStack := new(mango.Stack)
mainAjaxStack.Middleware(mangogzip.Zipper, mangolog.Logger, sessionMW, authenMW, rJson)
hardAuthenStack := new(mango.Stack)
hardAuthenStack.Middleware(mangogzip.Zipper, mangolog.Logger, sessionMW, hardAuthenMW, mainLayoutMW, rendererMW, rHtml)
// User
p.Get("/login", mainStack.HandlerFunc(sessions.LoginPage))
p.Post("/login", mainStack.HandlerFunc(sessions.LoginAction))
p.Get("/signup", mainStack.HandlerFunc(sessions.SignupPage))
p.Post("/signup", mainStack.HandlerFunc(sessions.SignupAction))
p.Get("/logout", mainStack.HandlerFunc(sessions.Logout))
p.Post("/user/update", hardAuthenStack.HandlerFunc(users.Update))
p.Get("/user/edit", hardAuthenStack.HandlerFunc(users.Edit))
p.Get("/user/:id", mainStack.HandlerFunc(users.Show))
// User post
p.Post("/post/create", mainAjaxStack.HandlerFunc(posts.Create))
// Brand
p.Get("/brands", mainStack.HandlerFunc(brands.Index))
p.Get("/brand/new", mainStack.HandlerFunc(brands.New))
p.Post("/brand/create", mainStack.HandlerFunc(brands.Create))
p.Get("/brand/:id", mainStack.HandlerFunc(brands.Show))
p.Get("/brand/:id/edit", mainStack.HandlerFunc(brands.Edit))
p.Post("/brand/update", mainStack.HandlerFunc(brands.Update))
// Follow brand
p.Post("/brand/follow", mainStack.HandlerFunc(followbrands.Create))
p.Post("/brand/unfollow", mainStack.HandlerFunc(followbrands.Delete))
// Product
p.Get("/products", mainStack.HandlerFunc(products.Index))
p.Get("/product/new", mainStack.HandlerFunc(products.New))
p.Post("/product/create", mainStack.HandlerFunc(products.Create))
p.Get("/product/:id", mainStack.HandlerFunc(products.Show))
p.Get("/product/:id/edit", mainStack.HandlerFunc(products.Edit))
p.Post("/product/update", mainStack.HandlerFunc(products.Update))
// Notes
p.Get("/note/new", mainStack.HandlerFunc(notes.New))
p.Get("/note/:id", mainStack.HandlerFunc(notes.Show))
p.Post("/note/create", mainStack.HandlerFunc(notes.Create))
// Review
p.Post("/review/create", mainStack.HandlerFunc(reviews.Create))
p.Post("/review/like", mainAjaxStack.HandlerFunc(reviews.Like))
// Wish Item
p.Post("/wish_item/add", mainAjaxStack.HandlerFunc(wishitems.Create))
p.Post("/wish_item/remove", mainAjaxStack.HandlerFunc(wishitems.Delete))
// Own Item
p.Post("/own_item/add", mainAjaxStack.HandlerFunc(ownitems.Create))
p.Post("/own_item/remove", mainAjaxStack.HandlerFunc(ownitems.Delete))
// News
p.Get("/news/:id", mainStack.HandlerFunc(news.Show))
p.Post("/news/create", mainStack.HandlerFunc(news.Create))
p.Get("/news/:id/edit", mainStack.HandlerFunc(news.Edit))
p.Post("/news/update", mainStack.HandlerFunc(news.Update))
// For admin in the futrue
p.Get("/admin/categories", mainStack.HandlerFunc(categories.Index))
p.Post("/admin/category/create", mainStack.HandlerFunc(categories.Create))
p.Post("/admin/efficacy/create", mainStack.HandlerFunc(efficacies.Create))
// News for admin
p.Get("/admin/news/new", mainStack.HandlerFunc(news.New))
// For Image upload
imageUploader := tenpu.MakeUploader(images.TheImageMaker)
imageLoader := tenpu.MakeFileLoader(images.TheImageMaker)
p.Post("/upload/:category/:uid", imageUploader)
p.Get("/img/:id/:name", imageLoader)
p.Get("/", mainStack.HandlerFunc(feeds.Index))
mux = http.NewServeMux()
mux.HandleFunc("/favicon.ico", filterUrl)
mux.Handle("/", p)
mux.Handle("/public/", http.FileServer(http.Dir(".")))
train.ConfigureHttpHandler(mux)
return
//.........這裏部分代碼省略.........