diff --git a/app/routing/router.go b/app/routing/router.go index fd50bc0..6f16e23 100644 --- a/app/routing/router.go +++ b/app/routing/router.go @@ -8,7 +8,7 @@ import ( "git.markbailey.dev/cerbervs/ptpp/lib/logger" "git.markbailey.dev/cerbervs/ptpp/lib/middleware" "git.markbailey.dev/cerbervs/ptpp/lib/session" - "git.markbailey.dev/cerbervs/ptpp/util/shared" + "git.markbailey.dev/cerbervs/ptpp/util" "log" "net/http" ) @@ -77,8 +77,8 @@ func (r Router) RegisterFs() { r.Mux = http.NewServeMux() } - fs := http.FileServer(http.Dir(shared.GetFullyQualifiedPath("/public"))) - log.Println("Serving static files from: " + shared.GetFullyQualifiedPath("/public")) + fs := http.FileServer(http.Dir(util.GetFullyQualifiedPath("/public"))) + log.Println("Serving static files from: " + util.GetFullyQualifiedPath("/public")) r.Mux.Handle("GET "+r.BasePath+"public/", http.StripPrefix("/public/", fs)) } @@ -87,7 +87,7 @@ type RouteMapping struct { Name string } -func GetFlatRouteList(r Router) []RouteMapping { +func (r Router) GetFlatRouteList() []RouteMapping { var routes []RouteMapping for _, route := range r.Routes { @@ -95,15 +95,14 @@ func GetFlatRouteList(r Router) []RouteMapping { } for _, subRouter := range *r.SubRouters { - routes = append(routes, GetFlatRouteList(subRouter)...) + routes = append(routes, subRouter.GetFlatRouteList()...) } return routes } -func GetRouteByName(name string) (string, error) { - r := AppRouter - for _, route := range GetFlatRouteList(r) { +func (r Router) GetRouteByName(name string) (string, error) { + for _, route := range r.GetFlatRouteList() { if route.Name == name { return route.Path, nil } diff --git a/cmd/main.go b/cmd/main.go index d6fb618..7e3f01f 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -3,7 +3,7 @@ package main import ( "git.markbailey.dev/cerbervs/ptpp/app" "git.markbailey.dev/cerbervs/ptpp/app/routing" - "git.markbailey.dev/cerbervs/ptpp/app/server" + main2 "git.markbailey.dev/cerbervs/ptpp/app/server" "net/http" "os" "strconv" @@ -31,7 +31,7 @@ func main() { port = devPort } - s := server.Server{ + s := main2.Server{ Addr: addr, Server: http.Server{ Addr: addr + ":" + strconv.Itoa(port), diff --git a/handlers/shared/user.go b/handlers/shared/user.go index 1fe61df..d62da7e 100644 --- a/handlers/shared/user.go +++ b/handlers/shared/user.go @@ -8,8 +8,7 @@ import ( "git.markbailey.dev/cerbervs/ptpp/lib/database/dto" "git.markbailey.dev/cerbervs/ptpp/lib/logger" "git.markbailey.dev/cerbervs/ptpp/lib/session" - "git.markbailey.dev/cerbervs/ptpp/util/auth" - "git.markbailey.dev/cerbervs/ptpp/util/shared" + "git.markbailey.dev/cerbervs/ptpp/util" "net/http" "time" @@ -67,10 +66,10 @@ func (c SignOutHandler) Init(s session.IManager, d database.IDB, l logger.ILogge func (c PopulateHandler) Get(w http.ResponseWriter, r *http.Request) error { existingOrg, err := c.Db.Repo().FindOrganizationByName("CerbervsSoft") if existingOrg != nil && err == nil { - return shared.Redirect(w, r, "/signup", http.StatusSeeOther, false) + return util.Redirect(w, r, "/signup", http.StatusSeeOther, false) } - authToken, err := auth.CreateTokenForUser("CerbervsSoft") + authToken, err := util.CreateTokenForUser("CerbervsSoft") if err != nil { return err } @@ -90,7 +89,7 @@ func (c PopulateHandler) Get(w http.ResponseWriter, r *http.Request) error { return err } - return shared.Redirect(w, r, "/signup", http.StatusSeeOther, false) + return util.Redirect(w, r, "/signup", http.StatusSeeOther, false) } type UserSignInForm struct { @@ -112,9 +111,9 @@ func (c SignInHandler) Get(w http.ResponseWriter, r *http.Request) error { } if foundUser.Admin == 1 { - return shared.Redirect(w, r, "/admin/", http.StatusSeeOther, false) + return util.Redirect(w, r, "/admin/", http.StatusSeeOther, false) } else { - return shared.Redirect(w, r, "/", http.StatusSeeOther, false) + return util.Redirect(w, r, "/", http.StatusSeeOther, false) } } } @@ -145,10 +144,10 @@ func (c SignInHandler) Post(w http.ResponseWriter, r *http.Request) error { foundUser, err := c.Db.Repo().FindUserByUsername(fd.Username) if foundUser == nil || err != nil { - return shared.Redirect(w, r, "/sign-in", http.StatusSeeOther, false) + return util.Redirect(w, r, "/sign-in", http.StatusSeeOther, false) } - authenticated, err := auth.CheckPassword(fd.Password, foundUser.Password) + authenticated, err := util.CheckPassword(fd.Password, foundUser.Password) if err != nil || !authenticated { return failWithFormError(w, r, "Invalid Username or Password.", sess) } @@ -158,7 +157,7 @@ func (c SignInHandler) Post(w http.ResponseWriter, r *http.Request) error { return err } - token, err := auth.CreateTokenForUser(foundUser.Username) + token, err := util.CreateTokenForUser(foundUser.Username) if err != nil { c.Logger.Error(c.Logger.Wrap(err, "Error creating token")) return err @@ -169,7 +168,7 @@ func (c SignInHandler) Post(w http.ResponseWriter, r *http.Request) error { return err } - authToken, err := auth.CreateTokenForUser(foundUser.Username) + authToken, err := util.CreateTokenForUser(foundUser.Username) if err != nil { c.Logger.Error(err) return err @@ -186,7 +185,7 @@ func (c SignInHandler) Post(w http.ResponseWriter, r *http.Request) error { return err } - jwtToken, err := auth.CreateTokenForUser(fd.Username) + jwtToken, err := util.CreateTokenForUser(fd.Username) if err != nil { return err } @@ -198,16 +197,16 @@ func (c SignInHandler) Post(w http.ResponseWriter, r *http.Request) error { Path: "/", }) - //err = sess.Delete("formError") - //if err != nil { - // return err - //} + err = sess.Delete("formError") + if err != nil { + return err + } c.Logger.Info(foundUser.Username + " logged in") if foundUser.Admin == 1 { - return shared.Redirect(w, r, "/admin/", http.StatusSeeOther, false) + return util.Redirect(w, r, "/admin/", http.StatusSeeOther, false) } else { - return shared.Redirect(w, r, "/", http.StatusSeeOther, false) + return util.Redirect(w, r, "/", http.StatusSeeOther, false) } } @@ -227,7 +226,7 @@ func (c SignUpHandler) Get(w http.ResponseWriter, r *http.Request) error { uname = "" } if uname != "" { - return shared.Redirect(w, r, "/", http.StatusSeeOther, false) + return util.Redirect(w, r, "/", http.StatusSeeOther, false) } if err := user.SignUpForm().Render(context.Background(), w); err != nil { @@ -259,13 +258,13 @@ func (c SignUpHandler) Post(w http.ResponseWriter, r *http.Request) error { return nil } - token, err := auth.CreateTokenForUser(fd.Username) + token, err := util.CreateTokenForUser(fd.Username) if err != nil { c.Logger.Error(c.Logger.Wrap(err, "Error creating token")) return err } - password, err := auth.HashPassword(fd.PasswordConfirmation) + password, err := util.HashPassword(fd.PasswordConfirmation) if err != nil { c.Logger.Error(c.Logger.Wrap(err, "Error hashing password")) return err @@ -303,7 +302,7 @@ func (c SignUpHandler) Post(w http.ResponseWriter, r *http.Request) error { return err } - jwtToken, err := auth.CreateTokenForUser(fd.Username) + jwtToken, err := util.CreateTokenForUser(fd.Username) if err != nil { return err } @@ -315,7 +314,7 @@ func (c SignUpHandler) Post(w http.ResponseWriter, r *http.Request) error { Path: "/", }) - return shared.Redirect(w, r, "/sign-in", http.StatusSeeOther, false) + return util.Redirect(w, r, "/sign-in", http.StatusSeeOther, false) } return nil @@ -341,7 +340,7 @@ func (c SignOutHandler) Get(w http.ResponseWriter, r *http.Request) error { Path: "/", }) - return shared.Redirect(w, r, "/", http.StatusSeeOther, true) + return util.Redirect(w, r, "/", http.StatusSeeOther, true) } func failWithFormError(w http.ResponseWriter, r *http.Request, formError string, sess session.ISession) error { @@ -349,5 +348,5 @@ func failWithFormError(w http.ResponseWriter, r *http.Request, formError string, if err != nil { return err } - return shared.Redirect(w, r, r.URL.Path, http.StatusSeeOther, false) + return util.Redirect(w, r, r.URL.Path, http.StatusSeeOther, false) } diff --git a/lib/logger/composite.go b/lib/logger/composite.go index 24a9fb2..67aedc9 100644 --- a/lib/logger/composite.go +++ b/lib/logger/composite.go @@ -3,7 +3,7 @@ package logger import ( "fmt" pterror "git.markbailey.dev/cerbervs/ptpp/lib/error" - "git.markbailey.dev/cerbervs/ptpp/util/shared" + "git.markbailey.dev/cerbervs/ptpp/util" "log" "os" "sync" @@ -44,7 +44,7 @@ func (l CompositeLogger) getLogFile() *os.File { compositeLogFileLock.Lock() defer compositeLogFileLock.Unlock() - absPath := shared.GetFullyQualifiedPath("/log") + absPath := util.GetFullyQualifiedPath("/log") err := os.MkdirAll(absPath, os.ModePerm) if err != nil { diff --git a/lib/logger/database.go b/lib/logger/database.go index 5c4de69..b6fdca3 100644 --- a/lib/logger/database.go +++ b/lib/logger/database.go @@ -3,7 +3,7 @@ package logger import ( "fmt" pterror "git.markbailey.dev/cerbervs/ptpp/lib/error" - "git.markbailey.dev/cerbervs/ptpp/util/shared" + "git.markbailey.dev/cerbervs/ptpp/util" "log" "os" "sync" @@ -44,7 +44,7 @@ func (l DBLogger) getLogFile() *os.File { dbLogFileLock.Lock() defer dbLogFileLock.Unlock() - absPath := shared.GetFullyQualifiedPath("/log") + absPath := util.GetFullyQualifiedPath("/log") generalLog, err := os.OpenFile(absPath+"/db-log.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) if err != nil { diff --git a/lib/middleware/middleware.go b/lib/middleware/middleware.go index 7165a5b..f2c1e23 100644 --- a/lib/middleware/middleware.go +++ b/lib/middleware/middleware.go @@ -2,8 +2,7 @@ package middleware import ( "fmt" - "git.markbailey.dev/cerbervs/ptpp/util/auth" - "git.markbailey.dev/cerbervs/ptpp/util/shared" + "git.markbailey.dev/cerbervs/ptpp/util" "net/http" "os" @@ -60,7 +59,7 @@ func WithLogger(next http.Handler) http.Handler { func WithAuth(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { var ( - claims *auth.CustomClaims + claims *util.CustomClaims cookie *http.Cookie err error token string @@ -68,7 +67,7 @@ func WithAuth(next http.Handler) http.Handler { ) if handlerSess.Get("username") != nil { - req := shared.AddValuesToRequestContext(r, map[any]any{ + req := util.AddValuesToRequestContext(r, map[any]any{ "username": handlerSess.Get("username"), }) next.ServeHTTP(w, req) @@ -76,19 +75,19 @@ func WithAuth(next http.Handler) http.Handler { } if cookie, err = r.Cookie("token"); err != nil { - _ = shared.Redirect(w, r, "/signin", http.StatusSeeOther, true) + _ = util.Redirect(w, r, "/signin", http.StatusSeeOther, true) return } if token = cookie.Value; token == "" { - _ = shared.Redirect(w, r, "/signin", http.StatusSeeOther, true) + _ = util.Redirect(w, r, "/signin", http.StatusSeeOther, true) return } - if claims, err = auth.ParseToken(token, os.Getenv("TOKEN_SECRET")); err != nil { - _ = shared.Redirect(w, r, "/signin", http.StatusSeeOther, true) + if claims, err = util.ParseToken(token, os.Getenv("TOKEN_SECRET")); err != nil { + _ = util.Redirect(w, r, "/signin", http.StatusSeeOther, true) return } - req := shared.AddValuesToRequestContext(r, map[any]any{ + req := util.AddValuesToRequestContext(r, map[any]any{ "username": claims.Username, }) next.ServeHTTP(w, req) @@ -98,7 +97,7 @@ func WithAuth(next http.Handler) http.Handler { func WithUsername(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { var ( - claims *auth.CustomClaims + claims *util.CustomClaims cookie *http.Cookie err error token string @@ -106,7 +105,7 @@ func WithUsername(next http.Handler) http.Handler { ) if handlerSess.Get("username") != nil { - req := shared.AddValuesToRequestContext(r, map[any]any{ + req := util.AddValuesToRequestContext(r, map[any]any{ "username": handlerSess.Get("username"), }) next.ServeHTTP(w, req) @@ -118,14 +117,14 @@ func WithUsername(next http.Handler) http.Handler { if token = cookie.Value; token == "" { uname = nil } - if claims, err = auth.ParseToken(token, os.Getenv("TOKEN_SECRET")); err != nil { + if claims, err = util.ParseToken(token, os.Getenv("TOKEN_SECRET")); err != nil { uname = nil } uname = &claims.Username } if uname != nil { - req := shared.AddValuesToRequestContext(r, map[any]any{ + req := util.AddValuesToRequestContext(r, map[any]any{ "username": uname, }) next.ServeHTTP(w, req) diff --git a/util/auth/auth.go b/util/auth.go similarity index 99% rename from util/auth/auth.go rename to util/auth.go index ede9cda..1610b5b 100644 --- a/util/auth/auth.go +++ b/util/auth.go @@ -1,4 +1,4 @@ -package auth +package util import ( "errors" diff --git a/util/shared/shared.go b/util/shared.go similarity index 98% rename from util/shared/shared.go rename to util/shared.go index e370f98..0b28df1 100644 --- a/util/shared/shared.go +++ b/util/shared.go @@ -1,4 +1,4 @@ -package shared +package util import ( "context" diff --git a/view/homepage/homepage.templ b/view/homepage/homepage.templ index 6f95c38..c69f411 100644 --- a/view/homepage/homepage.templ +++ b/view/homepage/homepage.templ @@ -1,9 +1,6 @@ package homepage -import ( -"git.markbailey.dev/cerbervs/ptpp/view/layout" -"git.markbailey.dev/cerbervs/ptpp/app/routing" -) +import "git.markbailey.dev/cerbervs/ptpp/view/layout" templ Homepage(env string) { @layout.Layout() { @@ -12,12 +9,12 @@ templ Homepage(env string) { Welcome to the homepage
- + - + diff --git a/view/homepage/homepage_templ.go b/view/homepage/homepage_templ.go index f673346..5f60a1b 100644 --- a/view/homepage/homepage_templ.go +++ b/view/homepage/homepage_templ.go @@ -8,10 +8,7 @@ package homepage import "github.com/a-h/templ" import templruntime "github.com/a-h/templ/runtime" -import ( - "git.markbailey.dev/cerbervs/ptpp/app/routing" - "git.markbailey.dev/cerbervs/ptpp/view/layout" -) +import "git.markbailey.dev/cerbervs/ptpp/view/layout" func Homepage(env string) templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { @@ -46,7 +43,7 @@ func Homepage(env string) templ.Component { }() } ctx = templ.InitializeContext(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Welcome to the homepage
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Welcome to the homepage
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err }