Skip to content

Commit

Permalink
🦄 refactor: code cleanup and optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
shurco committed Dec 6, 2023
1 parent 4ac8aa9 commit d203fe9
Show file tree
Hide file tree
Showing 68 changed files with 1,026 additions and 1,577 deletions.
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ go 1.21.3
require (
github.com/disintegration/imaging v1.6.2
github.com/go-ozzo/ozzo-validation/v4 v4.3.0
github.com/gofiber/contrib/fiberzerolog v0.2.2
github.com/gofiber/contrib/jwt v1.0.7
github.com/gofiber/contrib/fiberzerolog v0.2.3
github.com/gofiber/contrib/jwt v1.0.8
github.com/gofiber/fiber/v2 v2.51.0
github.com/gofiber/template/html/v2 v2.0.5
github.com/golang-jwt/jwt/v5 v5.2.0
Expand All @@ -31,7 +31,7 @@ require (
github.com/gofiber/utils v1.1.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/klauspost/compress v1.17.3 // indirect
github.com/klauspost/compress v1.17.4 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect
Expand All @@ -57,7 +57,7 @@ require (
lukechampine.com/uint128 v1.3.0 // indirect
modernc.org/cc/v3 v3.41.0 // indirect
modernc.org/ccgo/v3 v3.16.15 // indirect
modernc.org/libc v1.34.11 // indirect
modernc.org/libc v1.37.0 // indirect
modernc.org/mathutil v1.6.0 // indirect
modernc.org/memory v1.7.2 // indirect
modernc.org/opt v0.1.3 // indirect
Expand Down
14 changes: 10 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,12 @@ github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncV
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofiber/contrib/fiberzerolog v0.2.2 h1:tvHBW5k+udW02LU1eNneh65znGwhsKcv8XWf22U7dlc=
github.com/gofiber/contrib/fiberzerolog v0.2.2/go.mod h1:CSpu4UUPGWAA/jIIuHXIhJt3W1cRxprxupXndAYuvpU=
github.com/gofiber/contrib/fiberzerolog v0.2.3 h1:aWCKktmeyG8sc0KkvuVYXapPSN0Lyd7yXvbbm+2PeI0=
github.com/gofiber/contrib/fiberzerolog v0.2.3/go.mod h1:/w6tdELq7u/DNwbQW6RFztoUYcoFs+WpunfkBoyU04M=
github.com/gofiber/contrib/jwt v1.0.7 h1:LZuCnjEq8AjiDTUjBQSd2zg3H5uDWjHxSXjo7nj9iAc=
github.com/gofiber/contrib/jwt v1.0.7/go.mod h1:fA1apg9zQlUhax+Foc0BHATCDzBsemga1Yr9X0KSvrQ=
github.com/gofiber/contrib/jwt v1.0.8 h1:/GeOsm/Mr1OGr0GTy+RIVSz5VgNNyP3ZgK4wdqxF/WY=
github.com/gofiber/contrib/jwt v1.0.8/go.mod h1:gWWBtBiLmKXRN7xy6a96QO0KGvPEyxdh8x496Ujtg84=
github.com/gofiber/fiber/v2 v2.51.0 h1:JNACcZy5e2tGApWB2QrRpenTWn0fq0hkFm6k0C86gKQ=
github.com/gofiber/fiber/v2 v2.51.0/go.mod h1:xaQRZQJGqnKOQnbQw+ltvku3/h8QxvNi8o6JiJ7Ll0U=
github.com/gofiber/template v1.8.2 h1:PIv9s/7Uq6m+Fm2MDNd20pAFFKt5wWs7ZBd8iV9pWwk=
Expand Down Expand Up @@ -97,8 +101,8 @@ github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST
github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/klauspost/compress v1.17.3 h1:qkRjuerhUU1EmXLYGkSH6EZL+vPSxIrYjLNAK4slzwA=
github.com/klauspost/compress v1.17.3/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4=
github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
Expand Down Expand Up @@ -232,8 +236,10 @@ modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
modernc.org/libc v1.34.11 h1:hQDcIUlSG4QAOkXCIQKkaAOV5ptXvkOx4ddbXzgW2JU=
modernc.org/libc v1.34.11/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE=
modernc.org/libc v1.36.0 h1:J5UW1tOzu8d2NY8XtQ/tAHJuCcn0b062EkCY91drjX4=
modernc.org/libc v1.36.0/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE=
modernc.org/libc v1.37.0 h1:WerjebcsP6A7Jy+f2lCnHAkiSTLf7IaSftBYUtoswak=
modernc.org/libc v1.37.0/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE=
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=
Expand Down
40 changes: 15 additions & 25 deletions internal/app.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package app

import (
"context"
"crypto/tls"
"fmt"
"os"
"os/signal"
"strconv"
"strings"
"time"

"github.com/rs/zerolog"
"golang.org/x/crypto/acme/autocert"
Expand All @@ -21,6 +24,7 @@ import (
"github.com/shurco/litecart/migrations"
"github.com/shurco/litecart/pkg/fsutil"
"github.com/shurco/litecart/pkg/logging"
"github.com/shurco/litecart/pkg/webutil"
"github.com/shurco/litecart/web"
)

Expand Down Expand Up @@ -88,7 +92,6 @@ func NewApp(httpAddr, httpsAddr string, noSite, appDev bool) error {
app.Static("/uploads", "./lc_uploads")

app.Use(InstallCheck)
app.Use(SubdomainCheck)

routes.AdminRoutes(app)
routes.ApiPrivateRoutes(app)
Expand Down Expand Up @@ -156,7 +159,17 @@ func NewApp(httpAddr, httpsAddr string, noSite, appDev bool) error {

func InstallCheck(c *fiber.Ctx) error {
db := queries.DB()
if !db.IsInstalled() {

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

response, err := db.GetSettingByKey(ctx, "installed")
if err != nil {
return webutil.StatusBadRequest(c, err.Error())
}
install, _ := strconv.ParseBool(response.Value.(string))

if !install {
if !strings.HasPrefix(c.Path(), "/_/install") && !strings.HasPrefix(c.Path(), "/_/assets") && !strings.HasPrefix(c.Path(), "/api") {
return c.Redirect("/_/install")
}
Expand All @@ -166,29 +179,6 @@ func InstallCheck(c *fiber.Ctx) error {
return c.Next()
}

func SubdomainCheck(c *fiber.Ctx) error {
// db := queries.DB()

/*
if MainDomain == "" {
hostname := strings.Split(c.Hostname(), ".")
if len(hostname) > 2 {
hostname = hostname[1:]
}
MainDomain = strings.Join(hostname, ".")
}
*/

/*
if len(c.Subdomains()) > 0 {
if !db.CheckSubdomain(c.Subdomains()[0]) && !DevMode {
return c.Redirect(fmt.Sprintf("%s://%s", c.Protocol(), MainDomain), fiber.StatusMovedPermanently)
}
}
*/
return c.Next()
}

// StartServer is ...
func StartServer(addr string, a *fiber.App) {
if err := a.Listen(addr); err != nil {
Expand Down
14 changes: 8 additions & 6 deletions internal/handlers/private/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func SignIn(c *fiber.Ctx) error {
return webutil.StatusBadRequest(c, err.Error())
}

passwordHash, err := db.GetPasswordByEmail(request.Email)
passwordHash, err := db.GetPasswordByEmail(c.Context(), request.Email)
if err != nil {
return webutil.StatusBadRequest(c, err.Error())
}
Expand All @@ -38,20 +38,21 @@ func SignIn(c *fiber.Ctx) error {
}

// Generate a new pair of access and refresh tokens.
settingJWT, err := db.SettingJWT()
_settingJWT, err := db.GetSetting(c.Context(), &models.JWT{})
if err != nil {
return err
}
settingJWT := _settingJWT.(*models.JWT)

userID := uuid.New()
expires := time.Now().Add(time.Hour * time.Duration(settingJWT.SecretExpireHours)).Unix()
expires := time.Now().Add(time.Hour * time.Duration(settingJWT.ExpireHours)).Unix()
token, err := jwtutil.GenerateNewToken(settingJWT.Secret, userID.String(), expires, nil)
if err != nil {
return webutil.Response(c, fiber.StatusInternalServerError, "Internal server error", err.Error())
}

// Add session record
if err := db.AddSession(userID.String(), "admin", expires); err != nil {
if err := db.AddSession(c.Context(), userID.String(), "admin", expires); err != nil {
return webutil.Response(c, fiber.StatusInternalServerError, "Failed to save token", err.Error())
}

Expand All @@ -69,17 +70,18 @@ func SignIn(c *fiber.Ctx) error {
// [post] /api/sign/out
func SignOut(c *fiber.Ctx) error {
db := queries.DB()
settingJWT, err := db.SettingJWT()
_settingJWT, err := db.GetSetting(c.Context(), &models.JWT{})
if err != nil {
return err
}
settingJWT := _settingJWT.(*models.JWT)

claims, err := jwtutil.ExtractTokenMetadata(c, settingJWT.Secret)
if err != nil {
return webutil.Response(c, fiber.StatusInternalServerError, "Internal server error", err.Error())
}

if err := db.DeleteSession(claims.ID); err != nil {
if err := db.DeleteSession(c.Context(), claims.ID); err != nil {
return webutil.Response(c, fiber.StatusInternalServerError, "Failed to delete token", err.Error())
}

Expand Down
37 changes: 0 additions & 37 deletions internal/handlers/private/auth.http

This file was deleted.

2 changes: 1 addition & 1 deletion internal/handlers/private/cart.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
func Carts(c *fiber.Ctx) error {
db := queries.DB()

products, err := db.Carts()
products, err := db.Carts(c.Context())
if err != nil {
return webutil.StatusBadRequest(c, err.Error())
}
Expand Down
2 changes: 1 addition & 1 deletion internal/handlers/private/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func Install(c *fiber.Ctx) error {
return webutil.StatusBadRequest(c, err.Error())
}

if err := db.Install(request); err != nil {
if err := db.Install(c.Context(), request); err != nil {
return webutil.StatusBadRequest(c, err.Error())
}

Expand Down
24 changes: 0 additions & 24 deletions internal/handlers/private/install.http

This file was deleted.

12 changes: 6 additions & 6 deletions internal/handlers/private/page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
func Pages(c *fiber.Ctx) error {
db := queries.DB()

pages, err := db.ListPages(true)
pages, err := db.ListPages(c.Context(), true)
if err != nil {
return webutil.StatusBadRequest(c, err.Error())
}
Expand All @@ -31,7 +31,7 @@ func AddPage(c *fiber.Ctx) error {
return webutil.StatusBadRequest(c, err.Error())
}

page, err := db.AddPage(request)
page, err := db.AddPage(c.Context(), request)
if err != nil {
return webutil.StatusBadRequest(c, err.Error())
}
Expand All @@ -51,7 +51,7 @@ func UpdatePage(c *fiber.Ctx) error {
return webutil.StatusBadRequest(c, err.Error())
}

if err := db.UpdatePage(request); err != nil {
if err := db.UpdatePage(c.Context(), request); err != nil {
return webutil.StatusBadRequest(c, err.Error())
}

Expand All @@ -64,7 +64,7 @@ func DeletePage(c *fiber.Ctx) error {
pageID := c.Params("page_id")
db := queries.DB()

if err := db.DeletePage(pageID); err != nil {
if err := db.DeletePage(c.Context(), pageID); err != nil {
return webutil.StatusBadRequest(c, err.Error())
}

Expand All @@ -86,7 +86,7 @@ func UpdatePageContent(c *fiber.Ctx) error {
return webutil.StatusBadRequest(c, err.Error())
}

if err := db.UpdatePageContent(request); err != nil {
if err := db.UpdatePageContent(c.Context(), request); err != nil {
return webutil.StatusBadRequest(c, err.Error())
}

Expand All @@ -99,7 +99,7 @@ func UpdatePageActive(c *fiber.Ctx) error {
pageID := c.Params("page_id")
db := queries.DB()

if err := db.UpdatePageActive(pageID); err != nil {
if err := db.UpdatePageActive(c.Context(), pageID); err != nil {
return webutil.StatusBadRequest(c, err.Error())
}

Expand Down
15 changes: 0 additions & 15 deletions internal/handlers/private/page.http

This file was deleted.

Loading

0 comments on commit d203fe9

Please sign in to comment.