Browse Source

Fix #38

dependabot/npm_and_yarn/web/prismjs-1.21.0
Max Schmitt 8 years ago
parent
commit
547acee4fe
  1. 3
      handlers/auth.go
  2. 5
      handlers/auth_test.go
  3. 8
      handlers/handlers.go
  4. 22
      main.go
  5. 6
      store/store.go
  6. 9
      store/store_test.go

3
handlers/auth.go

@ -8,6 +8,7 @@ import (
"time"
"github.com/maxibanki/golang-url-shortener/util"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
jwt "github.com/dgrijalva/jwt-go"
@ -86,7 +87,7 @@ func (h *Handler) authMiddleware(c *gin.Context) {
c.AbortWithStatusJSON(http.StatusForbidden, gin.H{
"error": fmt.Sprintf("token is not valid: %v", authError),
})
h.log.Debugf("Authentication middleware failed: %v\n", authError)
logrus.Debugf("Authentication middleware failed: %v\n", authError)
} else {
c.AbortWithStatusJSON(http.StatusForbidden, gin.H{
"error": "authentication failed",

5
handlers/auth_test.go

@ -14,7 +14,6 @@ import (
"github.com/maxibanki/golang-url-shortener/store"
"github.com/maxibanki/golang-url-shortener/util"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
"golang.org/x/oauth2/google"
)
@ -47,11 +46,11 @@ func TestCreateBackend(t *testing.T) {
if err := util.ReadInConfig(); err != nil {
t.Fatalf("could not reload config file: %v", err)
}
store, err := store.New(logrus.New())
store, err := store.New()
if err != nil {
t.Fatalf("could not create store: %v", err)
}
handler, err := New(*store, logrus.New(), true)
handler, err := New(*store, true)
if err != nil {
t.Fatalf("could not create handler: %v", err)
}

8
handlers/handlers.go

@ -7,6 +7,7 @@ import (
"time"
"github.com/gin-gonic/contrib/ginrus"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
"github.com/gin-gonic/gin"
@ -14,7 +15,6 @@ import (
"github.com/maxibanki/golang-url-shortener/store"
"github.com/maxibanki/golang-url-shortener/util"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"golang.org/x/oauth2"
)
@ -24,17 +24,15 @@ type Handler struct {
store store.Store
engine *gin.Engine
oAuthConf *oauth2.Config
log *logrus.Logger
}
// New initializes the http handlers
func New(store store.Store, log *logrus.Logger, testing bool) (*Handler, error) {
func New(store store.Store, testing bool) (*Handler, error) {
if !viper.GetBool("General.EnableDebugMode") {
gin.SetMode(gin.ReleaseMode)
}
h := &Handler{
store: store,
log: log,
engine: gin.New(),
}
if err := h.setHandlers(); err != nil {
@ -66,7 +64,7 @@ func (h *Handler) setHandlers() error {
if err := h.setTemplateFromFS("token.tmpl"); err != nil {
return errors.Wrap(err, "could not set template from FS")
}
h.engine.Use(ginrus.Ginrus(h.log, time.RFC3339, false))
h.engine.Use(ginrus.Ginrus(logrus.StandardLogger(), time.RFC3339, false))
protected := h.engine.Group("/api/v1/protected")
protected.Use(h.authMiddleware)
protected.POST("/create", h.handleCreate)

22
main.go

@ -1,6 +1,7 @@
package main
import (
"log"
"os"
"os/signal"
@ -17,32 +18,31 @@ import (
func main() {
stop := make(chan os.Signal, 1)
signal.Notify(stop, os.Interrupt)
log := logrus.New()
log.Formatter = &logrus.TextFormatter{
logrus.SetFormatter(&logrus.TextFormatter{
ForceColors: true,
}
log.Out = ansicolor.NewAnsiColorWriter(os.Stdout)
close, err := initShortener(log)
})
logrus.SetOutput(ansicolor.NewAnsiColorWriter(os.Stdout))
close, err := initShortener()
if err != nil {
log.Fatalf("could not init shortener: %v", err)
logrus.Fatalf("could not init shortener: %v", err)
}
<-stop
log.Println("Shutting down...")
logrus.Println("Shutting down...")
close()
}
func initShortener(log *logrus.Logger) (func(), error) {
func initShortener() (func(), error) {
if err := util.ReadInConfig(); err != nil {
return nil, errors.Wrap(err, "could not reload config file")
}
if viper.GetBool("General.EnableDebugMode") {
log.SetLevel(logrus.DebugLevel)
logrus.SetLevel(logrus.DebugLevel)
}
store, err := store.New(log)
store, err := store.New()
if err != nil {
return nil, errors.Wrap(err, "could not create store")
}
handler, err := handlers.New(*store, log, false)
handler, err := handlers.New(*store, false)
if err != nil {
return nil, errors.Wrap(err, "could not create handlers")
}

6
store/store.go

@ -20,7 +20,6 @@ type Store struct {
db *bolt.DB
bucketName []byte
idLength int
log *logrus.Logger
}
// Entry is the data set which is stored in the DB as JSON
@ -49,7 +48,7 @@ var ErrGeneratingIDFailed = errors.New("could not generate unique id, all ten tr
var ErrIDIsEmpty = errors.New("the given ID is empty")
// New initializes the store with the db
func New(log *logrus.Logger) (*Store, error) {
func New() (*Store, error) {
db, err := bolt.Open(filepath.Join(util.GetDataDir(), "main.db"), 0644, &bolt.Options{Timeout: 1 * time.Second})
if err != nil {
return nil, errors.Wrap(err, "could not open bolt DB database")
@ -66,7 +65,6 @@ func New(log *logrus.Logger) (*Store, error) {
db: db,
idLength: viper.GetInt("General.ShortedIDLength"),
bucketName: bucketName,
log: log,
}, nil
}
@ -128,7 +126,7 @@ func (s *Store) CreateEntry(entry Entry, givenID string) (string, error) {
if err != nil && givenID != "" {
return "", err
} else if err != nil {
s.log.Debugf("Could not create entry: %v", err)
logrus.Debugf("Could not create entry: %v", err)
continue
}
return id, nil

9
store/store_test.go

@ -4,7 +4,6 @@ import (
"os"
"testing"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
@ -41,7 +40,7 @@ func TestGenerateRandomString(t *testing.T) {
func TestNewStore(t *testing.T) {
t.Run("create store with correct arguments", func(r *testing.T) {
store, err := New(logrus.New())
store, err := New()
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@ -50,7 +49,7 @@ func TestNewStore(t *testing.T) {
}
func TestCreateEntry(t *testing.T) {
store, err := New(logrus.New())
store, err := New()
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@ -72,7 +71,7 @@ func TestCreateEntry(t *testing.T) {
}
func TestGetEntryByID(t *testing.T) {
store, err := New(logrus.New())
store, err := New()
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@ -88,7 +87,7 @@ func TestGetEntryByID(t *testing.T) {
}
func TestIncreaseVisitCounter(t *testing.T) {
store, err := New(logrus.New())
store, err := New()
if err != nil {
t.Fatalf("could not create store: %v", err)
}

Loading…
Cancel
Save