diff options
Diffstat (limited to 'golang')
-rw-r--r-- | golang/api/handlers/entities.go | 43 | ||||
-rw-r--r-- | golang/cmd/fatcatd/main.go | 31 |
2 files changed, 59 insertions, 15 deletions
diff --git a/golang/api/handlers/entities.go b/golang/api/handlers/entities.go new file mode 100644 index 00000000..75c8b72b --- /dev/null +++ b/golang/api/handlers/entities.go @@ -0,0 +1,43 @@ + +package handlers + +import ( + //"net/http" + + "github.com/go-pg/pg" + "github.com/go-openapi/runtime/middleware" + + //"git.archive.org/bnewbold/fatcat/golang/gen/models" + "git.archive.org/bnewbold/fatcat/golang/gen/restapi/operations" +) + +func NewGetCreatorIDHandler(db *pg.DB) operations.GetCreatorIDHandler { + return &getCreatorID{db: db} +} + +type getCreatorID struct { + db *pg.DB +} + +func (d *getCreatorID) Handle(params operations.GetCreatorIDParams) middleware.Responder { + // "get or 404" using params.ID. join creator_ident and creator_rev. + // populate result data + // return that + return middleware.NotImplemented("operation .GetCreatorID has not yet been implemented. Coming soon!") +} + + + +func NewPostCreatorHandler(db *pg.DB) operations.PostCreatorHandler { + return &postCreator{db: db} +} + +type postCreator struct { + db *pg.DB +} + +func (d *postCreator) Handle(params operations.PostCreatorParams) middleware.Responder { + // get-or-create editgroup based on current editor (session) + // insert new rev, ident, and edit + return middleware.NotImplemented("operation .PostCreatorID has not yet been implemented") +} diff --git a/golang/cmd/fatcatd/main.go b/golang/cmd/fatcatd/main.go index 7f2c4374..15309345 100644 --- a/golang/cmd/fatcatd/main.go +++ b/golang/cmd/fatcatd/main.go @@ -8,13 +8,15 @@ import ( log "github.com/sirupsen/logrus" loads "github.com/go-openapi/loads" flags "github.com/jessevdk/go-flags" - middleware "github.com/go-openapi/runtime/middleware" + //middleware "github.com/go-openapi/runtime/middleware" "github.com/spf13/viper" "github.com/getsentry/raven-go" "github.com/carbocation/interpose" "github.com/carbocation/interpose/adaptors" "github.com/meatballhat/negroni-logrus" + "github.com/go-pg/pg" + "git.archive.org/bnewbold/fatcat/golang/api/handlers" "git.archive.org/bnewbold/fatcat/golang/gen/restapi" "git.archive.org/bnewbold/fatcat/golang/gen/restapi/operations" ) @@ -84,29 +86,28 @@ func main() { os.Exit(code) } - // XXX: server.ConfigureAPI() - api.GetCreatorIDHandler = operations.GetCreatorIDHandlerFunc(func(params operations.GetCreatorIDParams) middleware.Responder { - // "get or 404" using params.ID. join creator_ident and creator_rev. - // populate result data - // return that - return middleware.NotImplemented("operation .GetCreatorID has not yet been implemented") - }) - api.PostCreatorHandler = operations.PostCreatorHandlerFunc(func(params operations.PostCreatorParams) middleware.Responder { - // get-or-create editgroup based on current editor (session) - // insert new rev, ident, and edit - return middleware.NotImplemented("operation .PostCreator has not yet been implemented") - }) + server.Port = viper.GetInt("port") + + db := pg.Connect(&pg.Options{ + User: "bnewbold", // XXX: + Database: "fatcat", + }) + defer db.Close() + + // register all the many handlers here + api.GetCreatorIDHandler = handlers.NewGetCreatorIDHandler(db); + api.PostCreatorHandler = handlers.NewPostCreatorHandler(db); middle := interpose.New() // sentry and upstream - //middle.UseHandler(sentry.Recovery(raven.DefaultClient, false)) + // XXX: middle.UseHandler(sentry.Recovery(raven.DefaultClient, false)) // logging negroniMiddleware := negronilogrus.NewMiddleware() middle.Use(adaptors.FromNegroni(negroniMiddleware)) - // add clacks + // add clacks (TODO: only production) middle.UseHandler(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { rw.Header().Set("X-Clacks-Overhead:", "GNU Aaron Swartz, John Perry Barlow") })) |