summaryrefslogtreecommitdiffstats
path: root/golang
diff options
context:
space:
mode:
Diffstat (limited to 'golang')
-rw-r--r--golang/api/handlers/entities.go43
-rw-r--r--golang/cmd/fatcatd/main.go31
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")
}))