forked from wgroeneveld/go-jamming
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.8 KiB
35 lines
1.8 KiB
package app
|
|
|
|
import (
|
|
"brainbaking.com/go-jamming/app/admin"
|
|
"brainbaking.com/go-jamming/app/index"
|
|
"brainbaking.com/go-jamming/app/pictures"
|
|
"brainbaking.com/go-jamming/app/pingback"
|
|
"brainbaking.com/go-jamming/app/rss"
|
|
"brainbaking.com/go-jamming/app/webmention"
|
|
)
|
|
|
|
// stole ideas from https://pace.dev/blog/2018/05/09/how-I-write-http-services-after-eight-years.html
|
|
// not that contempt with passing conf, but can't create receivers on non-local types, and won't move specifics into package app
|
|
// https://blog.questionable.services/article/http-handler-error-handling-revisited/ is the better idea, but more work
|
|
func (s *server) routes() {
|
|
c := s.conf
|
|
db := s.repo
|
|
|
|
s.router.HandleFunc("/", index.Handle(c)).Methods("GET")
|
|
s.router.HandleFunc("/pictures/{picture}", pictures.Handle(db)).Methods("GET")
|
|
s.router.HandleFunc("/pingback", pingback.HandlePost(c, db)).Methods("POST")
|
|
s.router.HandleFunc("/webmention", webmention.HandlePost(c, db)).Methods("POST")
|
|
|
|
s.router.HandleFunc("/feed/{domain}/{token}", s.domainAndTokenOnly(rss.HandleGet(c, db))).Methods("GET")
|
|
|
|
s.router.HandleFunc("/webmention/{domain}/{token}", s.domainAndTokenOnly(webmention.HandleGet(db))).Methods("GET")
|
|
s.router.HandleFunc("/webmention/{domain}/{token}", s.domainAndTokenOnly(webmention.HandlePut(c, db))).Methods("PUT")
|
|
s.router.HandleFunc("/webmention/{domain}/{token}", s.domainAndTokenOnly(webmention.HandleDelete(db))).Methods("DELETE")
|
|
|
|
s.router.HandleFunc("/admin/{token}", s.tokenOnly(admin.HandleGet(c, db))).Methods("GET")
|
|
s.router.HandleFunc("/admin/{domain}/{token}", s.domainAndTokenOnly(admin.HandleGetToApprove(db))).Methods("GET")
|
|
s.router.HandleFunc("/admin/approve/{token}/{key}", s.tokenOnly(admin.HandleApprove(c, db))).Methods("GET")
|
|
s.router.HandleFunc("/admin/reject/{token}/{key}", s.tokenOnly(admin.HandleReject(c, db))).Methods("GET")
|
|
}
|