mirror of
https://github.com/gomods/athens
synced 2026-02-03 13:20:30 +00:00
Enpoint for fetching event log (#133)
* Enpoint for fetching event log * sort listed module version * review changes * unify mongo env var name
This commit is contained in:
committed by
Aaron Schlesinger
parent
656d4b2549
commit
d78252d527
@@ -17,6 +17,7 @@ before_script:
|
||||
- export GO_ENV=test_postgres
|
||||
- export MINIO_ACCESS_KEY=minio
|
||||
- export MINIO_SECRET_KEY=minio123
|
||||
- export ATHENS_MONGO_STORAGE_URL=mongodb://127.0.0.1:27017
|
||||
- wget https://dl.minio.io/server/minio/release/linux-amd64/minio && chmod +x minio && nohup ./minio server . &
|
||||
- go get -u -v github.com/gobuffalo/buffalo/buffalo
|
||||
- go get -u -v golang.org/x/vgo
|
||||
|
||||
@@ -67,9 +67,15 @@ func App() *buffalo.App {
|
||||
log.Fatalf("error creating storage (%s)", err)
|
||||
return nil
|
||||
}
|
||||
eventlogReader, err := newEventlog()
|
||||
if err != nil {
|
||||
log.Fatalf("error creating eventlog (%s)", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
app.GET("/", homeHandler)
|
||||
app.GET("/feed/{syncpoint:.*}", feedHandler(storage))
|
||||
app.GET("/eventlog/{sequence_id}", eventlogHandler(eventlogReader))
|
||||
|
||||
app.ServeFiles("/", assetsBox) // serve files from the public directory
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package actions
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gobuffalo/envy"
|
||||
"github.com/gomods/athens/pkg/eventlog"
|
||||
"github.com/gomods/athens/pkg/eventlog/mongo"
|
||||
)
|
||||
|
||||
func newEventlog() (eventlog.Reader, error) {
|
||||
mongoURI, err := envy.MustGet("ATHENS_MONGO_STORAGE_URL")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("missing mongo URL (%s)", err)
|
||||
}
|
||||
l, err := mongo.NewLog(mongoURI)
|
||||
return l, err
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package actions
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gobuffalo/buffalo"
|
||||
"github.com/gomods/athens/pkg/eventlog"
|
||||
)
|
||||
|
||||
func eventlogHandler(r eventlog.Reader) func(c buffalo.Context) error {
|
||||
return func(c buffalo.Context) error {
|
||||
seqID := c.Param("sequence_id")
|
||||
|
||||
var events []eventlog.Event
|
||||
var err error
|
||||
if seqID == "" {
|
||||
events, err = r.Read()
|
||||
} else {
|
||||
events, err = r.ReadFrom(seqID)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return c.Render(http.StatusOK, renderEng.JSON(events))
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,6 @@ func feedHandler(s storage.Backend) func(c buffalo.Context) error {
|
||||
|
||||
feed := make(map[string][]string)
|
||||
|
||||
return c.Render(http.StatusOK, olympus.JSON(feed))
|
||||
return c.Render(http.StatusOK, renderEng.JSON(feed))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,5 +5,5 @@ import (
|
||||
)
|
||||
|
||||
func homeHandler(c buffalo.Context) error {
|
||||
return c.Render(200, olympus.HTML("index.html"))
|
||||
return c.Render(200, renderEng.HTML("index.html"))
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ import (
|
||||
"github.com/gobuffalo/packr"
|
||||
)
|
||||
|
||||
var olympus *render.Engine
|
||||
var renderEng *render.Engine
|
||||
var assetsBox = packr.NewBox("../public")
|
||||
|
||||
func init() {
|
||||
olympus = render.New(render.Options{
|
||||
renderEng = render.New(render.Options{
|
||||
// HTML layout to be used for all HTML requests:
|
||||
HTMLLayout: "application.html",
|
||||
JavaScriptLayout: "application.js",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package minio
|
||||
|
||||
import (
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -25,5 +26,6 @@ func (l *storageImpl) List(module string) ([]string, error) {
|
||||
for ver := range dict {
|
||||
ret = append(ret, ver)
|
||||
}
|
||||
sort.Strings(ret)
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user