package routes import ( "github.com/labstack/echo" "github.com/labstack/echo/middleware" apiv1 "git.mowie.cc/konrad/Library/routes/api/v1" "git.mowie.cc/konrad/Library/models" ) 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", })) // 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(models.Config.JWTLoginSecret)) a.POST("/tokenTest", apiv1.CheckToken) // 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 */ }