93 lines
2.2 KiB
Go
93 lines
2.2 KiB
Go
package routes
|
|
|
|
import (
|
|
"github.com/labstack/echo"
|
|
"github.com/labstack/echo/middleware"
|
|
apiv1 "git.mowie.cc/konrad/Library/routes/api/v1"
|
|
|
|
"github.com/gorilla/sessions"
|
|
"github.com/labstack/echo-contrib/session"
|
|
"github.com/dgrijalva/jwt-go"
|
|
)
|
|
|
|
func NewEcho() *echo.Echo {
|
|
e := echo.New()
|
|
|
|
// Logger
|
|
e.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{
|
|
Format: "${time_rfc3339}: ${remote_ip} ${method} ${status} ${uri} - ${user_agent}\n",
|
|
}))
|
|
|
|
// Sessions
|
|
e.Use(session.Middleware(sessions.NewFilesystemStore("./session.store", []byte("secret"))))
|
|
|
|
// Static Content
|
|
e.Static("/assets", "assets")
|
|
|
|
return e
|
|
}
|
|
|
|
func RegisterRoutes(e *echo.Echo) {
|
|
|
|
// API Routes
|
|
a := e.Group("/api/v1")
|
|
// Lookup Books
|
|
a.GET("/books/list", apiv1.List)
|
|
|
|
// Lookup Authors
|
|
|
|
// Lookup Publishers
|
|
|
|
// Login Route
|
|
e.POST("/login", Login)
|
|
|
|
|
|
// ===== Routes with Authetification =====
|
|
// Authetification
|
|
a.Use(middleware.JWT([]byte("secret")))
|
|
|
|
// Manage Books
|
|
a.POST("/books/add", apiv1.Add)
|
|
|
|
// Manage Authors
|
|
|
|
// Manage Publishers
|
|
|
|
// Manage Users
|
|
|
|
/*
|
|
Alles nur mit Api machen, davor dann einen onepager mit vue.js.
|
|
|
|
(Alles mit | benötigt Authentifizierung)
|
|
|
|
Routes:
|
|
/ - entweder übersicht anzeigen (wenn der nutzer eingeloggt ist) oder auf /login weiterleiten
|
|
/login - Einloggen
|
|
/logout - ausloggen
|
|
|
|
/books/:id/edit - |Buch bearbeiten (inkl mengen)
|
|
/books/:id/delete - |Buch löschen
|
|
/books/search?s=se - Suchen
|
|
/books/list - Auflisten
|
|
/books/add - |Hinzufügen
|
|
|
|
/authors/:id/edit - |Autor bearbeiten
|
|
/authors/:id/delete - |Autor löschen (auch mit allem in books_author)
|
|
/authors/list - Autoren auflisten
|
|
/authors/search?s=d - Autoren suchen
|
|
/authors/add - |Hinzufügen
|
|
|
|
/publishers/:id/edit - |Verlag bearbeiten
|
|
/publishers/:id/delete - |Verlag löschen (bei büchern Verlag auf 0 setzen)
|
|
/publishers/list - Verlage auflisten
|
|
/publishers/search?s= - Verlage suchen
|
|
/publishers/add - |Hinzufügen
|
|
|
|
/settings - |Nutzereinstellungen (Passwort, name etc)
|
|
/user - Nutzer anzeigen
|
|
/user/add - |neue Nutzer anlegen
|
|
/user/:id/delete - |nutzer löschen
|
|
/user/:id/edit - |nutzer bearbeiten
|
|
*/
|
|
}
|