Browse Source

Merge branch 'master' into kegan/auth

kegan/auth
Kegan Dougal 9 years ago
parent
commit
6b250c8528
  1. 16
      src/github.com/matrix-org/go-neb/api.go
  2. 3
      src/github.com/matrix-org/go-neb/goneb.go

16
src/github.com/matrix-org/go-neb/api.go

@ -2,6 +2,7 @@ package main
import ( import (
"encoding/json" "encoding/json"
log "github.com/Sirupsen/logrus"
"github.com/matrix-org/go-neb/clients" "github.com/matrix-org/go-neb/clients"
"github.com/matrix-org/go-neb/database" "github.com/matrix-org/go-neb/database"
"github.com/matrix-org/go-neb/errors" "github.com/matrix-org/go-neb/errors"
@ -42,12 +43,17 @@ func (*configureAuthHandler) OnIncomingRequest(req *http.Request) (interface{},
return nil, nil return nil, nil
} }
func handleWebhook(w http.ResponseWriter, req *http.Request) {
type webhookHandler struct {
db *database.ServiceDB
}
func (wh *webhookHandler) handle(w http.ResponseWriter, req *http.Request) {
segments := strings.Split(req.URL.Path, "/") segments := strings.Split(req.URL.Path, "/")
// last path segment is the service type which we will pass the incoming request to
srvType := segments[len(segments)-1]
service := types.CreateService("", srvType)
if service == nil {
// last path segment is the service ID which we will pass the incoming request to
srvID := segments[len(segments)-1]
service, err := wh.db.LoadService(srvID)
if err != nil {
log.WithError(err).WithField("service_id", srvID).Print("Failed to load service")
w.WriteHeader(404) w.WriteHeader(404)
return return
} }

3
src/github.com/matrix-org/go-neb/goneb.go

@ -35,7 +35,8 @@ func main() {
http.Handle("/admin/configureClient", server.MakeJSONAPI(&configureClientHandler{db: db, clients: clients})) http.Handle("/admin/configureClient", server.MakeJSONAPI(&configureClientHandler{db: db, clients: clients}))
http.Handle("/admin/configureService", server.MakeJSONAPI(&configureServiceHandler{db: db, clients: clients})) http.Handle("/admin/configureService", server.MakeJSONAPI(&configureServiceHandler{db: db, clients: clients}))
http.Handle("/admin/configureAuth", server.MakeJSONAPI(&configureAuthHandler{db: db})) http.Handle("/admin/configureAuth", server.MakeJSONAPI(&configureAuthHandler{db: db}))
http.HandleFunc("/services/hooks/", handleWebhook)
wh := &webhookHandler{db: db}
http.HandleFunc("/services/hooks/", wh.handle)
http.ListenAndServe(bindAddress, nil) http.ListenAndServe(bindAddress, nil)
} }
Loading…
Cancel
Save