From 59377707017b2d426d4231ed93a3a2d6496142e8 Mon Sep 17 00:00:00 2001 From: Gustavo Ocanto Date: Fri, 30 May 2025 10:48:34 +0800 Subject: [PATCH 1/5] rename to pkgs --- api/users/create_handler.go | 10 ++-- api/users/repository.go | 2 +- api/users/users_schema.go | 4 +- bootstrap/app.go | 12 ++--- bootstrap/boostrap.go | 10 ++-- bootstrap/spark.go | 4 +- bootstrap/validate.go | 6 +-- database/seeder/main.go | 2 +- main.go | 78 +++++++++++++-------------- {webkit => pkgs}/cli/colour.go | 0 {webkit => pkgs}/gorm/support.go | 0 {webkit => pkgs}/handler.go | 2 +- {webkit => pkgs}/llogs/driver.go | 0 {webkit => pkgs}/llogs/files_logs.go | 0 {webkit => pkgs}/media/contract.go | 0 {webkit => pkgs}/media/media.go | 0 {webkit => pkgs}/media/support.go | 0 pkgs/middleware/middlewares.go | 49 +++++++++++++++++ {webkit => pkgs}/middleware/schema.go | 2 +- {webkit => pkgs}/request/request.go | 0 {webkit => pkgs}/response/response.go | 0 {webkit => pkgs}/sentry.go | 2 +- {webkit => pkgs}/stringable.go | 2 +- {webkit => pkgs}/validator.go | 2 +- webkit/middleware/middlewares.go | 49 ----------------- 25 files changed, 118 insertions(+), 118 deletions(-) rename {webkit => pkgs}/cli/colour.go (100%) rename {webkit => pkgs}/gorm/support.go (100%) rename {webkit => pkgs}/handler.go (98%) rename {webkit => pkgs}/llogs/driver.go (100%) rename {webkit => pkgs}/llogs/files_logs.go (100%) rename {webkit => pkgs}/media/contract.go (100%) rename {webkit => pkgs}/media/media.go (100%) rename {webkit => pkgs}/media/support.go (100%) create mode 100644 pkgs/middleware/middlewares.go rename {webkit => pkgs}/middleware/schema.go (89%) rename {webkit => pkgs}/request/request.go (100%) rename {webkit => pkgs}/response/response.go (100%) rename {webkit => pkgs}/sentry.go (93%) rename {webkit => pkgs}/stringable.go (97%) rename {webkit => pkgs}/validator.go (99%) delete mode 100644 webkit/middleware/middlewares.go diff --git a/api/users/create_handler.go b/api/users/create_handler.go index 4e01bb09..3db1b558 100644 --- a/api/users/create_handler.go +++ b/api/users/create_handler.go @@ -5,10 +5,10 @@ import ( "errors" "fmt" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" - "github.com/gocanto/blog/webkit/media" - "github.com/gocanto/blog/webkit/request" - "github.com/gocanto/blog/webkit/response" + "github.com/gocanto/blog/pkgs" + "github.com/gocanto/blog/pkgs/media" + "github.com/gocanto/blog/pkgs/request" + "github.com/gocanto/blog/pkgs/response" "io" "mime/multipart" "net/http" @@ -76,7 +76,7 @@ func (handler UserHandler) Create(w http.ResponseWriter, r *http.Request) *respo }, } - return webkit.SendJSON(w, http.StatusCreated, payload) + return pkgs.SendJSON(w, http.StatusCreated, payload) } func extractData[T media.MultipartFormInterface](reader *multipart.Reader, data T) error { diff --git a/api/users/repository.go b/api/users/repository.go index eeb00a9d..849e851b 100644 --- a/api/users/repository.go +++ b/api/users/repository.go @@ -3,7 +3,7 @@ package users import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkgs/gorm" "github.com/google/uuid" "strings" "time" diff --git a/api/users/users_schema.go b/api/users/users_schema.go index 21b3395b..2b8f0b39 100644 --- a/api/users/users_schema.go +++ b/api/users/users_schema.go @@ -1,10 +1,10 @@ package users import ( - "github.com/gocanto/blog/webkit" + "github.com/gocanto/blog/pkgs" ) type UserHandler struct { - Validator *webkit.Validator + Validator *pkgs.Validator Repository *Repository } diff --git a/bootstrap/app.go b/bootstrap/app.go index cfaaf2ad..de56fcc5 100644 --- a/bootstrap/app.go +++ b/bootstrap/app.go @@ -4,20 +4,20 @@ import ( "github.com/gocanto/blog/api/users" "github.com/gocanto/blog/database" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" - "github.com/gocanto/blog/webkit/llogs" - "github.com/gocanto/blog/webkit/middleware" + "github.com/gocanto/blog/pkgs" + "github.com/gocanto/blog/pkgs/llogs" + "github.com/gocanto/blog/pkgs/middleware" "net/http" ) type App struct { - Validator *webkit.Validator `validate:"required"` + Validator *pkgs.Validator `validate:"required"` Logs *llogs.Driver `validate:"required"` DbConnection *database.Connection `validate:"required"` AdminUser *users.AdminUser `validate:"required"` Env *env.Environment `validate:"required"` Mux *http.ServeMux `validate:"required"` - Sentry *webkit.Sentry `validate:"required"` + Sentry *pkgs.Sentry `validate:"required"` } func MakeApp(mux *http.ServeMux, app *App) *App { @@ -36,7 +36,7 @@ func (app App) RegisterUsers() { Validator: app.Validator, } - app.Mux.HandleFunc("POST /users", webkit.CreateHandle( + app.Mux.HandleFunc("POST /users", pkgs.CreateHandle( stack.Push( handler.Create, stack.AdminUser, diff --git a/bootstrap/boostrap.go b/bootstrap/boostrap.go index c73a569f..28c4a1be 100644 --- a/bootstrap/boostrap.go +++ b/bootstrap/boostrap.go @@ -6,15 +6,15 @@ import ( "github.com/gocanto/blog/api/users" "github.com/gocanto/blog/database" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" - "github.com/gocanto/blog/webkit/llogs" + "github.com/gocanto/blog/pkgs" + "github.com/gocanto/blog/pkgs/llogs" "log" "strconv" "strings" "time" ) -func MakeSentry(env *env.Environment) *webkit.Sentry { +func MakeSentry(env *env.Environment) *pkgs.Sentry { cOptions := sentry.ClientOptions{ Dsn: env.Sentry.DSN, Debug: true, @@ -29,7 +29,7 @@ func MakeSentry(env *env.Environment) *webkit.Sentry { options := sentryhttp.Options{} handler := sentryhttp.New(options) - return &webkit.Sentry{ + return &pkgs.Sentry{ Handler: handler, Options: &options, Env: env, @@ -63,7 +63,7 @@ func MakeAdminUser(env *env.Environment) *users.AdminUser { } } -func MakeEnv(values map[string]string, validate *webkit.Validator) *env.Environment { +func MakeEnv(values map[string]string, validate *pkgs.Validator) *env.Environment { errorSufix := "Environment: " port, _ := strconv.Atoi(values["ENV_DB_PORT"]) diff --git a/bootstrap/spark.go b/bootstrap/spark.go index 78801743..9e9f1915 100644 --- a/bootstrap/spark.go +++ b/bootstrap/spark.go @@ -2,11 +2,11 @@ package bootstrap import ( "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" + "github.com/gocanto/blog/pkgs" "github.com/joho/godotenv" ) -func Spark(envPath string) (*env.Environment, *webkit.Validator) { +func Spark(envPath string) (*env.Environment, *pkgs.Validator) { validate := GetDefaultValidate() envMap, err := godotenv.Read(envPath) diff --git a/bootstrap/validate.go b/bootstrap/validate.go index 28a0d388..264ac5f2 100644 --- a/bootstrap/validate.go +++ b/bootstrap/validate.go @@ -2,11 +2,11 @@ package bootstrap import ( baseValidator "github.com/go-playground/validator/v10" - "github.com/gocanto/blog/webkit" + "github.com/gocanto/blog/pkgs" ) -func GetDefaultValidate() *webkit.Validator { - return webkit.MakeValidatorFrom(baseValidator.New( +func GetDefaultValidate() *pkgs.Validator { + return pkgs.MakeValidatorFrom(baseValidator.New( baseValidator.WithRequiredStructEnabled(), )) } diff --git a/database/seeder/main.go b/database/seeder/main.go index 3cdd5557..5f5e9b93 100644 --- a/database/seeder/main.go +++ b/database/seeder/main.go @@ -5,7 +5,7 @@ import ( "github.com/gocanto/blog/database" "github.com/gocanto/blog/database/seeder/seeds" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit/cli" + "github.com/gocanto/blog/pkgs/cli" "sync" "time" ) diff --git a/main.go b/main.go index 5502273e..13bbed43 100644 --- a/main.go +++ b/main.go @@ -1,52 +1,52 @@ package main import ( - "github.com/gocanto/blog/bootstrap" - "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" - _ "github.com/lib/pq" - "log/slog" - "net/http" + "github.com/gocanto/blog/bootstrap" + "github.com/gocanto/blog/env" + "github.com/gocanto/blog/pkgs" + _ "github.com/lib/pq" + "log/slog" + "net/http" ) var environment *env.Environment -var validator *webkit.Validator +var validator *pkgs.Validator func init() { - secrets, validate := bootstrap.Spark("./.env") + secrets, validate := bootstrap.Spark("./.env") - environment = secrets - validator = validate + environment = secrets + validator = validate } func main() { - dbConnection := bootstrap.MakeDbConnection(environment) - logs := bootstrap.MakeLogs(environment) - adminUser := bootstrap.MakeAdminUser(environment) - localSentry := bootstrap.MakeSentry(environment) - - defer (*logs).Close() - defer (*dbConnection).Close() - - mux := http.NewServeMux() - - app := bootstrap.MakeApp(mux, &bootstrap.App{ - Validator: validator, - Logs: logs, - DbConnection: dbConnection, - AdminUser: adminUser, - Env: environment, - Mux: mux, - Sentry: localSentry, - }) - - app.RegisterUsers() - - (*dbConnection).Ping() - slog.Info("Starting new server on :" + environment.Network.HttpPort) - - if err := http.ListenAndServe(environment.Network.GetHostURL(), mux); err != nil { - slog.Error("Error starting server", "error", err) - panic("Error starting server." + err.Error()) - } + dbConnection := bootstrap.MakeDbConnection(environment) + logs := bootstrap.MakeLogs(environment) + adminUser := bootstrap.MakeAdminUser(environment) + localSentry := bootstrap.MakeSentry(environment) + + defer (*logs).Close() + defer (*dbConnection).Close() + + mux := http.NewServeMux() + + app := bootstrap.MakeApp(mux, &bootstrap.App{ + Validator: validator, + Logs: logs, + DbConnection: dbConnection, + AdminUser: adminUser, + Env: environment, + Mux: mux, + Sentry: localSentry, + }) + + app.RegisterUsers() + + (*dbConnection).Ping() + slog.Info("Starting new server on :" + environment.Network.HttpPort) + + if err := http.ListenAndServe(environment.Network.GetHostURL(), mux); err != nil { + slog.Error("Error starting server", "error", err) + panic("Error starting server." + err.Error()) + } } diff --git a/webkit/cli/colour.go b/pkgs/cli/colour.go similarity index 100% rename from webkit/cli/colour.go rename to pkgs/cli/colour.go diff --git a/webkit/gorm/support.go b/pkgs/gorm/support.go similarity index 100% rename from webkit/gorm/support.go rename to pkgs/gorm/support.go diff --git a/webkit/handler.go b/pkgs/handler.go similarity index 98% rename from webkit/handler.go rename to pkgs/handler.go index 2344edb8..7a50fbe0 100644 --- a/webkit/handler.go +++ b/pkgs/handler.go @@ -1,4 +1,4 @@ -package webkit +package pkgs import ( "encoding/json" diff --git a/webkit/llogs/driver.go b/pkgs/llogs/driver.go similarity index 100% rename from webkit/llogs/driver.go rename to pkgs/llogs/driver.go diff --git a/webkit/llogs/files_logs.go b/pkgs/llogs/files_logs.go similarity index 100% rename from webkit/llogs/files_logs.go rename to pkgs/llogs/files_logs.go diff --git a/webkit/media/contract.go b/pkgs/media/contract.go similarity index 100% rename from webkit/media/contract.go rename to pkgs/media/contract.go diff --git a/webkit/media/media.go b/pkgs/media/media.go similarity index 100% rename from webkit/media/media.go rename to pkgs/media/media.go diff --git a/webkit/media/support.go b/pkgs/media/support.go similarity index 100% rename from webkit/media/support.go rename to pkgs/media/support.go diff --git a/pkgs/middleware/middlewares.go b/pkgs/middleware/middlewares.go new file mode 100644 index 00000000..34e5611f --- /dev/null +++ b/pkgs/middleware/middlewares.go @@ -0,0 +1,49 @@ +package middleware + +import ( + "github.com/gocanto/blog/env" + "github.com/gocanto/blog/webkit" + "github.com/gocanto/blog/webkit/response" + "net/http" +) + +func (s MiddlewaresStack) Logging(next pkgs.BaseHandler) pkgs.BaseHandler { + return func(w http.ResponseWriter, r *http.Request) *response.Response { + println("Incoming request:", r.Method, r.URL.Path) + + err := next(w, r) + + if err != nil { + println("Handler returned error:", err.Message) + } else { + println("Handler completed successfully") + } + + return err + } +} + +func (s MiddlewaresStack) AdminUser(next pkgs.BaseHandler) pkgs.BaseHandler { + return func(w http.ResponseWriter, r *http.Request) *response.Response { + salt := r.Header.Get(env.ApiKeyHeader) + + if s.isAdminUser(salt) { + return next(w, r) + } + + return response.Unauthorized("Unauthorized", nil) + } +} + +func (s MiddlewaresStack) isAdminUser(seed string) bool { + return s.userAdminResolver(seed) +} + +func (s MiddlewaresStack) Push(handler pkgs.BaseHandler, middlewares ...Middleware) pkgs.BaseHandler { + // Apply middleware in reverse order, so the first middleware in the list is executed first. + for i := len(middlewares) - 1; i >= 0; i-- { + handler = middlewares[i](handler) + } + + return handler +} diff --git a/webkit/middleware/schema.go b/pkgs/middleware/schema.go similarity index 89% rename from webkit/middleware/schema.go rename to pkgs/middleware/schema.go index fac490cd..51202b6e 100644 --- a/webkit/middleware/schema.go +++ b/pkgs/middleware/schema.go @@ -11,7 +11,7 @@ type MiddlewaresStack struct { userAdminResolver func(seed string) bool } -type Middleware func(webkit.BaseHandler) webkit.BaseHandler +type Middleware func(pkgs.BaseHandler) pkgs.BaseHandler func MakeMiddlewareStack(env *env.Environment, userAdminResolver func(seed string) bool) *MiddlewaresStack { return &MiddlewaresStack{ diff --git a/webkit/request/request.go b/pkgs/request/request.go similarity index 100% rename from webkit/request/request.go rename to pkgs/request/request.go diff --git a/webkit/response/response.go b/pkgs/response/response.go similarity index 100% rename from webkit/response/response.go rename to pkgs/response/response.go diff --git a/webkit/sentry.go b/pkgs/sentry.go similarity index 93% rename from webkit/sentry.go rename to pkgs/sentry.go index b4c1bfc3..0d16536c 100644 --- a/webkit/sentry.go +++ b/pkgs/sentry.go @@ -1,4 +1,4 @@ -package webkit +package pkgs import ( sentryhttp "github.com/getsentry/sentry-go/http" diff --git a/webkit/stringable.go b/pkgs/stringable.go similarity index 97% rename from webkit/stringable.go rename to pkgs/stringable.go index 6d90989f..3b95505b 100644 --- a/webkit/stringable.go +++ b/pkgs/stringable.go @@ -1,4 +1,4 @@ -package webkit +package pkgs import ( "fmt" diff --git a/webkit/validator.go b/pkgs/validator.go similarity index 99% rename from webkit/validator.go rename to pkgs/validator.go index b5818102..6e34e5af 100644 --- a/webkit/validator.go +++ b/pkgs/validator.go @@ -1,4 +1,4 @@ -package webkit +package pkgs import ( "encoding/json" diff --git a/webkit/middleware/middlewares.go b/webkit/middleware/middlewares.go deleted file mode 100644 index 0cdf7a4c..00000000 --- a/webkit/middleware/middlewares.go +++ /dev/null @@ -1,49 +0,0 @@ -package middleware - -import ( - "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" - "github.com/gocanto/blog/webkit/response" - "net/http" -) - -func (s MiddlewaresStack) Logging(next webkit.BaseHandler) webkit.BaseHandler { - return func(w http.ResponseWriter, r *http.Request) *response.Response { - println("Incoming request:", r.Method, r.URL.Path) - - err := next(w, r) - - if err != nil { - println("Handler returned error:", err.Message) - } else { - println("Handler completed successfully") - } - - return err - } -} - -func (s MiddlewaresStack) AdminUser(next webkit.BaseHandler) webkit.BaseHandler { - return func(w http.ResponseWriter, r *http.Request) *response.Response { - salt := r.Header.Get(env.ApiKeyHeader) - - if s.isAdminUser(salt) { - return next(w, r) - } - - return response.Unauthorized("Unauthorized", nil) - } -} - -func (s MiddlewaresStack) isAdminUser(seed string) bool { - return s.userAdminResolver(seed) -} - -func (s MiddlewaresStack) Push(handler webkit.BaseHandler, middlewares ...Middleware) webkit.BaseHandler { - // Apply middleware in reverse order, so the first middleware in the list is executed first. - for i := len(middlewares) - 1; i >= 0; i-- { - handler = middlewares[i](handler) - } - - return handler -} From dd91ad0e7ab005c598cb0bc91049e53feda751ca Mon Sep 17 00:00:00 2001 From: Gustavo Ocanto Date: Fri, 30 May 2025 10:54:26 +0800 Subject: [PATCH 2/5] rename to pkg --- api/users/create_handler.go | 10 +-- api/users/repository.go | 2 +- api/users/users_schema.go | 4 +- bootstrap/app.go | 12 ++-- bootstrap/boostrap.go | 10 +-- bootstrap/spark.go | 4 +- bootstrap/validate.go | 6 +- database/seeder/main.go | 2 +- database/seeder/seeds/categories.go | 2 +- database/seeder/seeds/likes.go | 2 +- database/seeder/seeds/newsletters.go | 2 +- database/seeder/seeds/post_categories.go | 2 +- database/seeder/seeds/post_tags.go | 2 +- database/seeder/seeds/post_views.go | 2 +- database/seeder/seeds/posts.go | 2 +- database/seeder/seeds/tags.go | 2 +- database/seeder/seeds/users.go | 2 +- main.go | 78 ++++++++++++------------ {pkgs => pkg}/cli/colour.go | 0 {pkgs => pkg}/gorm/support.go | 0 {pkgs => pkg}/handler.go | 4 +- {pkgs => pkg}/llogs/driver.go | 0 {pkgs => pkg}/llogs/files_logs.go | 0 {pkgs => pkg}/media/contract.go | 0 {pkgs => pkg}/media/media.go | 0 {pkgs => pkg}/media/support.go | 2 +- {pkgs => pkg}/middleware/middlewares.go | 10 +-- {pkgs => pkg}/middleware/schema.go | 4 +- {pkgs => pkg}/request/request.go | 2 +- {pkgs => pkg}/response/response.go | 0 {pkgs => pkg}/sentry.go | 2 +- {pkgs => pkg}/stringable.go | 2 +- {pkgs => pkg}/validator.go | 2 +- 33 files changed, 87 insertions(+), 87 deletions(-) rename {pkgs => pkg}/cli/colour.go (100%) rename {pkgs => pkg}/gorm/support.go (100%) rename {pkgs => pkg}/handler.go (95%) rename {pkgs => pkg}/llogs/driver.go (100%) rename {pkgs => pkg}/llogs/files_logs.go (100%) rename {pkgs => pkg}/media/contract.go (100%) rename {pkgs => pkg}/media/media.go (100%) rename {pkgs => pkg}/media/support.go (92%) rename {pkgs => pkg}/middleware/middlewares.go (75%) rename {pkgs => pkg}/middleware/schema.go (83%) rename {pkgs => pkg}/request/request.go (97%) rename {pkgs => pkg}/response/response.go (100%) rename {pkgs => pkg}/sentry.go (93%) rename {pkgs => pkg}/stringable.go (97%) rename {pkgs => pkg}/validator.go (99%) diff --git a/api/users/create_handler.go b/api/users/create_handler.go index 3db1b558..78f6e55a 100644 --- a/api/users/create_handler.go +++ b/api/users/create_handler.go @@ -5,10 +5,10 @@ import ( "errors" "fmt" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/pkgs" - "github.com/gocanto/blog/pkgs/media" - "github.com/gocanto/blog/pkgs/request" - "github.com/gocanto/blog/pkgs/response" + "github.com/gocanto/blog/pkg" + "github.com/gocanto/blog/pkg/media" + "github.com/gocanto/blog/pkg/request" + "github.com/gocanto/blog/pkg/response" "io" "mime/multipart" "net/http" @@ -76,7 +76,7 @@ func (handler UserHandler) Create(w http.ResponseWriter, r *http.Request) *respo }, } - return pkgs.SendJSON(w, http.StatusCreated, payload) + return pkg.SendJSON(w, http.StatusCreated, payload) } func extractData[T media.MultipartFormInterface](reader *multipart.Reader, data T) error { diff --git a/api/users/repository.go b/api/users/repository.go index 849e851b..8e743be3 100644 --- a/api/users/repository.go +++ b/api/users/repository.go @@ -3,7 +3,7 @@ package users import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/pkgs/gorm" + "github.com/gocanto/blog/pkg/gorm" "github.com/google/uuid" "strings" "time" diff --git a/api/users/users_schema.go b/api/users/users_schema.go index 2b8f0b39..37d9c610 100644 --- a/api/users/users_schema.go +++ b/api/users/users_schema.go @@ -1,10 +1,10 @@ package users import ( - "github.com/gocanto/blog/pkgs" + "github.com/gocanto/blog/pkg" ) type UserHandler struct { - Validator *pkgs.Validator + Validator *pkg.Validator Repository *Repository } diff --git a/bootstrap/app.go b/bootstrap/app.go index de56fcc5..0ecfe805 100644 --- a/bootstrap/app.go +++ b/bootstrap/app.go @@ -4,20 +4,20 @@ import ( "github.com/gocanto/blog/api/users" "github.com/gocanto/blog/database" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/pkgs" - "github.com/gocanto/blog/pkgs/llogs" - "github.com/gocanto/blog/pkgs/middleware" + "github.com/gocanto/blog/pkg" + "github.com/gocanto/blog/pkg/llogs" + "github.com/gocanto/blog/pkg/middleware" "net/http" ) type App struct { - Validator *pkgs.Validator `validate:"required"` + Validator *pkg.Validator `validate:"required"` Logs *llogs.Driver `validate:"required"` DbConnection *database.Connection `validate:"required"` AdminUser *users.AdminUser `validate:"required"` Env *env.Environment `validate:"required"` Mux *http.ServeMux `validate:"required"` - Sentry *pkgs.Sentry `validate:"required"` + Sentry *pkg.Sentry `validate:"required"` } func MakeApp(mux *http.ServeMux, app *App) *App { @@ -36,7 +36,7 @@ func (app App) RegisterUsers() { Validator: app.Validator, } - app.Mux.HandleFunc("POST /users", pkgs.CreateHandle( + app.Mux.HandleFunc("POST /users", pkg.CreateHandle( stack.Push( handler.Create, stack.AdminUser, diff --git a/bootstrap/boostrap.go b/bootstrap/boostrap.go index 28c4a1be..b7adf807 100644 --- a/bootstrap/boostrap.go +++ b/bootstrap/boostrap.go @@ -6,15 +6,15 @@ import ( "github.com/gocanto/blog/api/users" "github.com/gocanto/blog/database" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/pkgs" - "github.com/gocanto/blog/pkgs/llogs" + "github.com/gocanto/blog/pkg" + "github.com/gocanto/blog/pkg/llogs" "log" "strconv" "strings" "time" ) -func MakeSentry(env *env.Environment) *pkgs.Sentry { +func MakeSentry(env *env.Environment) *pkg.Sentry { cOptions := sentry.ClientOptions{ Dsn: env.Sentry.DSN, Debug: true, @@ -29,7 +29,7 @@ func MakeSentry(env *env.Environment) *pkgs.Sentry { options := sentryhttp.Options{} handler := sentryhttp.New(options) - return &pkgs.Sentry{ + return &pkg.Sentry{ Handler: handler, Options: &options, Env: env, @@ -63,7 +63,7 @@ func MakeAdminUser(env *env.Environment) *users.AdminUser { } } -func MakeEnv(values map[string]string, validate *pkgs.Validator) *env.Environment { +func MakeEnv(values map[string]string, validate *pkg.Validator) *env.Environment { errorSufix := "Environment: " port, _ := strconv.Atoi(values["ENV_DB_PORT"]) diff --git a/bootstrap/spark.go b/bootstrap/spark.go index 9e9f1915..be98dd4b 100644 --- a/bootstrap/spark.go +++ b/bootstrap/spark.go @@ -2,11 +2,11 @@ package bootstrap import ( "github.com/gocanto/blog/env" - "github.com/gocanto/blog/pkgs" + "github.com/gocanto/blog/pkg" "github.com/joho/godotenv" ) -func Spark(envPath string) (*env.Environment, *pkgs.Validator) { +func Spark(envPath string) (*env.Environment, *pkg.Validator) { validate := GetDefaultValidate() envMap, err := godotenv.Read(envPath) diff --git a/bootstrap/validate.go b/bootstrap/validate.go index 264ac5f2..4df3539c 100644 --- a/bootstrap/validate.go +++ b/bootstrap/validate.go @@ -2,11 +2,11 @@ package bootstrap import ( baseValidator "github.com/go-playground/validator/v10" - "github.com/gocanto/blog/pkgs" + "github.com/gocanto/blog/pkg" ) -func GetDefaultValidate() *pkgs.Validator { - return pkgs.MakeValidatorFrom(baseValidator.New( +func GetDefaultValidate() *pkg.Validator { + return pkg.MakeValidatorFrom(baseValidator.New( baseValidator.WithRequiredStructEnabled(), )) } diff --git a/database/seeder/main.go b/database/seeder/main.go index 5f5e9b93..461cea82 100644 --- a/database/seeder/main.go +++ b/database/seeder/main.go @@ -5,7 +5,7 @@ import ( "github.com/gocanto/blog/database" "github.com/gocanto/blog/database/seeder/seeds" "github.com/gocanto/blog/env" - "github.com/gocanto/blog/pkgs/cli" + "github.com/gocanto/blog/pkg/cli" "sync" "time" ) diff --git a/database/seeder/seeds/categories.go b/database/seeder/seeds/categories.go index 0d59a88d..2dca86bc 100644 --- a/database/seeder/seeds/categories.go +++ b/database/seeder/seeds/categories.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" "github.com/google/uuid" ) diff --git a/database/seeder/seeds/likes.go b/database/seeder/seeds/likes.go index f8d35940..f8685a72 100644 --- a/database/seeder/seeds/likes.go +++ b/database/seeder/seeds/likes.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" "github.com/google/uuid" ) diff --git a/database/seeder/seeds/newsletters.go b/database/seeder/seeds/newsletters.go index 502a1fbf..9c55c5d8 100644 --- a/database/seeder/seeds/newsletters.go +++ b/database/seeder/seeds/newsletters.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" "time" ) diff --git a/database/seeder/seeds/post_categories.go b/database/seeder/seeds/post_categories.go index 12077aed..3e140bde 100644 --- a/database/seeder/seeds/post_categories.go +++ b/database/seeder/seeds/post_categories.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" ) type PostCategoriesSeed struct { diff --git a/database/seeder/seeds/post_tags.go b/database/seeder/seeds/post_tags.go index 55ab275d..b39afc7c 100644 --- a/database/seeder/seeds/post_tags.go +++ b/database/seeder/seeds/post_tags.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" ) type PostTagsSeed struct { diff --git a/database/seeder/seeds/post_views.go b/database/seeder/seeds/post_views.go index 4b4ddb0e..65968d82 100644 --- a/database/seeder/seeds/post_views.go +++ b/database/seeder/seeds/post_views.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" ) type PostViewsSeed struct { diff --git a/database/seeder/seeds/posts.go b/database/seeder/seeds/posts.go index 10b94db5..c6837871 100644 --- a/database/seeder/seeds/posts.go +++ b/database/seeder/seeds/posts.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" "github.com/google/uuid" "time" ) diff --git a/database/seeder/seeds/tags.go b/database/seeder/seeds/tags.go index f6a77620..839205ec 100644 --- a/database/seeder/seeds/tags.go +++ b/database/seeder/seeds/tags.go @@ -3,7 +3,7 @@ package seeds import ( "fmt" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" "github.com/google/uuid" ) diff --git a/database/seeder/seeds/users.go b/database/seeder/seeds/users.go index 8fc23d39..ce88eb8d 100644 --- a/database/seeder/seeds/users.go +++ b/database/seeder/seeds/users.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/gocanto/blog/api/users" "github.com/gocanto/blog/database" - "github.com/gocanto/blog/webkit/gorm" + "github.com/gocanto/blog/pkg/gorm" "github.com/google/uuid" "strings" "time" diff --git a/main.go b/main.go index 13bbed43..a3fb7b38 100644 --- a/main.go +++ b/main.go @@ -1,52 +1,52 @@ package main import ( - "github.com/gocanto/blog/bootstrap" - "github.com/gocanto/blog/env" - "github.com/gocanto/blog/pkgs" - _ "github.com/lib/pq" - "log/slog" - "net/http" + "github.com/gocanto/blog/bootstrap" + "github.com/gocanto/blog/env" + "github.com/gocanto/blog/pkg" + _ "github.com/lib/pq" + "log/slog" + "net/http" ) var environment *env.Environment -var validator *pkgs.Validator +var validator *pkg.Validator func init() { - secrets, validate := bootstrap.Spark("./.env") + secrets, validate := bootstrap.Spark("./.env") - environment = secrets - validator = validate + environment = secrets + validator = validate } func main() { - dbConnection := bootstrap.MakeDbConnection(environment) - logs := bootstrap.MakeLogs(environment) - adminUser := bootstrap.MakeAdminUser(environment) - localSentry := bootstrap.MakeSentry(environment) - - defer (*logs).Close() - defer (*dbConnection).Close() - - mux := http.NewServeMux() - - app := bootstrap.MakeApp(mux, &bootstrap.App{ - Validator: validator, - Logs: logs, - DbConnection: dbConnection, - AdminUser: adminUser, - Env: environment, - Mux: mux, - Sentry: localSentry, - }) - - app.RegisterUsers() - - (*dbConnection).Ping() - slog.Info("Starting new server on :" + environment.Network.HttpPort) - - if err := http.ListenAndServe(environment.Network.GetHostURL(), mux); err != nil { - slog.Error("Error starting server", "error", err) - panic("Error starting server." + err.Error()) - } + dbConnection := bootstrap.MakeDbConnection(environment) + logs := bootstrap.MakeLogs(environment) + adminUser := bootstrap.MakeAdminUser(environment) + localSentry := bootstrap.MakeSentry(environment) + + defer (*logs).Close() + defer (*dbConnection).Close() + + mux := http.NewServeMux() + + app := bootstrap.MakeApp(mux, &bootstrap.App{ + Validator: validator, + Logs: logs, + DbConnection: dbConnection, + AdminUser: adminUser, + Env: environment, + Mux: mux, + Sentry: localSentry, + }) + + app.RegisterUsers() + + (*dbConnection).Ping() + slog.Info("Starting new server on :" + environment.Network.HttpPort) + + if err := http.ListenAndServe(environment.Network.GetHostURL(), mux); err != nil { + slog.Error("Error starting server", "error", err) + panic("Error starting server." + err.Error()) + } } diff --git a/pkgs/cli/colour.go b/pkg/cli/colour.go similarity index 100% rename from pkgs/cli/colour.go rename to pkg/cli/colour.go diff --git a/pkgs/gorm/support.go b/pkg/gorm/support.go similarity index 100% rename from pkgs/gorm/support.go rename to pkg/gorm/support.go diff --git a/pkgs/handler.go b/pkg/handler.go similarity index 95% rename from pkgs/handler.go rename to pkg/handler.go index 7a50fbe0..513760eb 100644 --- a/pkgs/handler.go +++ b/pkg/handler.go @@ -1,8 +1,8 @@ -package pkgs +package pkg import ( "encoding/json" - "github.com/gocanto/blog/webkit/response" + "github.com/gocanto/blog/pkg/response" "log/slog" "net/http" ) diff --git a/pkgs/llogs/driver.go b/pkg/llogs/driver.go similarity index 100% rename from pkgs/llogs/driver.go rename to pkg/llogs/driver.go diff --git a/pkgs/llogs/files_logs.go b/pkg/llogs/files_logs.go similarity index 100% rename from pkgs/llogs/files_logs.go rename to pkg/llogs/files_logs.go diff --git a/pkgs/media/contract.go b/pkg/media/contract.go similarity index 100% rename from pkgs/media/contract.go rename to pkg/media/contract.go diff --git a/pkgs/media/media.go b/pkg/media/media.go similarity index 100% rename from pkgs/media/media.go rename to pkg/media/media.go diff --git a/pkgs/media/support.go b/pkg/media/support.go similarity index 92% rename from pkgs/media/support.go rename to pkg/media/support.go index d8ef10cc..accb6d3d 100644 --- a/pkgs/media/support.go +++ b/pkg/media/support.go @@ -25,7 +25,7 @@ func GetStorageDir() string { if err != nil { // Handle the error appropriately. - // Path default to relative path if getting WD fails + // Path default to a relative path if getting WD fails return "./" + folder } diff --git a/pkgs/middleware/middlewares.go b/pkg/middleware/middlewares.go similarity index 75% rename from pkgs/middleware/middlewares.go rename to pkg/middleware/middlewares.go index 34e5611f..2c182260 100644 --- a/pkgs/middleware/middlewares.go +++ b/pkg/middleware/middlewares.go @@ -2,12 +2,12 @@ package middleware import ( "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" - "github.com/gocanto/blog/webkit/response" + "github.com/gocanto/blog/pkg" + "github.com/gocanto/blog/pkg/response" "net/http" ) -func (s MiddlewaresStack) Logging(next pkgs.BaseHandler) pkgs.BaseHandler { +func (s MiddlewaresStack) Logging(next pkg.BaseHandler) pkg.BaseHandler { return func(w http.ResponseWriter, r *http.Request) *response.Response { println("Incoming request:", r.Method, r.URL.Path) @@ -23,7 +23,7 @@ func (s MiddlewaresStack) Logging(next pkgs.BaseHandler) pkgs.BaseHandler { } } -func (s MiddlewaresStack) AdminUser(next pkgs.BaseHandler) pkgs.BaseHandler { +func (s MiddlewaresStack) AdminUser(next pkg.BaseHandler) pkg.BaseHandler { return func(w http.ResponseWriter, r *http.Request) *response.Response { salt := r.Header.Get(env.ApiKeyHeader) @@ -39,7 +39,7 @@ func (s MiddlewaresStack) isAdminUser(seed string) bool { return s.userAdminResolver(seed) } -func (s MiddlewaresStack) Push(handler pkgs.BaseHandler, middlewares ...Middleware) pkgs.BaseHandler { +func (s MiddlewaresStack) Push(handler pkg.BaseHandler, middlewares ...Middleware) pkg.BaseHandler { // Apply middleware in reverse order, so the first middleware in the list is executed first. for i := len(middlewares) - 1; i >= 0; i-- { handler = middlewares[i](handler) diff --git a/pkgs/middleware/schema.go b/pkg/middleware/schema.go similarity index 83% rename from pkgs/middleware/schema.go rename to pkg/middleware/schema.go index 51202b6e..b6363695 100644 --- a/pkgs/middleware/schema.go +++ b/pkg/middleware/schema.go @@ -2,7 +2,7 @@ package middleware import ( "github.com/gocanto/blog/env" - "github.com/gocanto/blog/webkit" + "github.com/gocanto/blog/pkg" ) type MiddlewaresStack struct { @@ -11,7 +11,7 @@ type MiddlewaresStack struct { userAdminResolver func(seed string) bool } -type Middleware func(pkgs.BaseHandler) pkgs.BaseHandler +type Middleware func(pkg.BaseHandler) pkg.BaseHandler func MakeMiddlewareStack(env *env.Environment, userAdminResolver func(seed string) bool) *MiddlewaresStack { return &MiddlewaresStack{ diff --git a/pkgs/request/request.go b/pkg/request/request.go similarity index 97% rename from pkgs/request/request.go rename to pkg/request/request.go index c63c5f7b..a36be8dd 100644 --- a/pkgs/request/request.go +++ b/pkg/request/request.go @@ -3,7 +3,7 @@ package request import ( "errors" "fmt" - "github.com/gocanto/blog/webkit/media" + "github.com/gocanto/blog/pkg/media" "io" "log/slog" "mime/multipart" diff --git a/pkgs/response/response.go b/pkg/response/response.go similarity index 100% rename from pkgs/response/response.go rename to pkg/response/response.go diff --git a/pkgs/sentry.go b/pkg/sentry.go similarity index 93% rename from pkgs/sentry.go rename to pkg/sentry.go index 0d16536c..a6ba46e6 100644 --- a/pkgs/sentry.go +++ b/pkg/sentry.go @@ -1,4 +1,4 @@ -package pkgs +package pkg import ( sentryhttp "github.com/getsentry/sentry-go/http" diff --git a/pkgs/stringable.go b/pkg/stringable.go similarity index 97% rename from pkgs/stringable.go rename to pkg/stringable.go index 3b95505b..4f81086d 100644 --- a/pkgs/stringable.go +++ b/pkg/stringable.go @@ -1,4 +1,4 @@ -package pkgs +package pkg import ( "fmt" diff --git a/pkgs/validator.go b/pkg/validator.go similarity index 99% rename from pkgs/validator.go rename to pkg/validator.go index 6e34e5af..ba4656c5 100644 --- a/pkgs/validator.go +++ b/pkg/validator.go @@ -1,4 +1,4 @@ -package pkgs +package pkg import ( "encoding/json" From c4f053530ed2730176566d3d4abd698cc0148403 Mon Sep 17 00:00:00 2001 From: Gustavo Ocanto Date: Fri, 30 May 2025 11:08:29 +0800 Subject: [PATCH 3/5] use logger --- pkg/middleware/middlewares.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/middleware/middlewares.go b/pkg/middleware/middlewares.go index 2c182260..8a6186a8 100644 --- a/pkg/middleware/middlewares.go +++ b/pkg/middleware/middlewares.go @@ -1,22 +1,22 @@ package middleware import ( + "fmt" "github.com/gocanto/blog/env" "github.com/gocanto/blog/pkg" "github.com/gocanto/blog/pkg/response" + "log/slog" "net/http" ) func (s MiddlewaresStack) Logging(next pkg.BaseHandler) pkg.BaseHandler { return func(w http.ResponseWriter, r *http.Request) *response.Response { - println("Incoming request:", r.Method, r.URL.Path) + slog.Info(fmt.Sprintf("Incoming request: [method:%s] [path:%s].", r.Method, r.URL.Path)) err := next(w, r) if err != nil { - println("Handler returned error:", err.Message) - } else { - println("Handler completed successfully") + slog.Error(fmt.Sprintf("Handler returned error: %s", err)) } return err From 1b5e118f54fe6287e452fd16b5e14b97734bb00d Mon Sep 17 00:00:00 2001 From: Gustavo Ocanto Date: Fri, 30 May 2025 11:27:10 +0800 Subject: [PATCH 4/5] rename to boost --- {bootstrap => boost}/app.go | 2 +- bootstrap/boostrap.go => boost/boost.go | 2 +- {bootstrap => boost}/spark.go | 2 +- {bootstrap => boost}/validate.go | 2 +- database/seeder/main.go | 8 ++++---- main.go | 14 +++++++------- 6 files changed, 15 insertions(+), 15 deletions(-) rename {bootstrap => boost}/app.go (98%) rename bootstrap/boostrap.go => boost/boost.go (99%) rename {bootstrap => boost}/spark.go (95%) rename {bootstrap => boost}/validate.go (93%) diff --git a/bootstrap/app.go b/boost/app.go similarity index 98% rename from bootstrap/app.go rename to boost/app.go index 0ecfe805..27e874ec 100644 --- a/bootstrap/app.go +++ b/boost/app.go @@ -1,4 +1,4 @@ -package bootstrap +package boost import ( "github.com/gocanto/blog/api/users" diff --git a/bootstrap/boostrap.go b/boost/boost.go similarity index 99% rename from bootstrap/boostrap.go rename to boost/boost.go index b7adf807..168b5344 100644 --- a/bootstrap/boostrap.go +++ b/boost/boost.go @@ -1,4 +1,4 @@ -package bootstrap +package boost import ( "github.com/getsentry/sentry-go" diff --git a/bootstrap/spark.go b/boost/spark.go similarity index 95% rename from bootstrap/spark.go rename to boost/spark.go index be98dd4b..0bb54999 100644 --- a/bootstrap/spark.go +++ b/boost/spark.go @@ -1,4 +1,4 @@ -package bootstrap +package boost import ( "github.com/gocanto/blog/env" diff --git a/bootstrap/validate.go b/boost/validate.go similarity index 93% rename from bootstrap/validate.go rename to boost/validate.go index 4df3539c..d691574c 100644 --- a/bootstrap/validate.go +++ b/boost/validate.go @@ -1,4 +1,4 @@ -package bootstrap +package boost import ( baseValidator "github.com/go-playground/validator/v10" diff --git a/database/seeder/main.go b/database/seeder/main.go index 461cea82..7a404c7e 100644 --- a/database/seeder/main.go +++ b/database/seeder/main.go @@ -1,7 +1,7 @@ package main import ( - "github.com/gocanto/blog/bootstrap" + "github.com/gocanto/blog/boost" "github.com/gocanto/blog/database" "github.com/gocanto/blog/database/seeder/seeds" "github.com/gocanto/blog/env" @@ -13,14 +13,14 @@ import ( var environment *env.Environment func init() { - secrets, _ := bootstrap.Spark("./.env") + secrets, _ := boost.Spark("./.env") environment = secrets } func main() { - dbConnection := bootstrap.MakeDbConnection(environment) - logs := bootstrap.MakeLogs(environment) + dbConnection := boost.MakeDbConnection(environment) + logs := boost.MakeLogs(environment) defer (*logs).Close() defer (*dbConnection).Close() diff --git a/main.go b/main.go index a3fb7b38..32c5b38e 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,7 @@ package main import ( - "github.com/gocanto/blog/bootstrap" + "github.com/gocanto/blog/boost" "github.com/gocanto/blog/env" "github.com/gocanto/blog/pkg" _ "github.com/lib/pq" @@ -13,24 +13,24 @@ var environment *env.Environment var validator *pkg.Validator func init() { - secrets, validate := bootstrap.Spark("./.env") + secrets, validate := boost.Spark("./.env") environment = secrets validator = validate } func main() { - dbConnection := bootstrap.MakeDbConnection(environment) - logs := bootstrap.MakeLogs(environment) - adminUser := bootstrap.MakeAdminUser(environment) - localSentry := bootstrap.MakeSentry(environment) + dbConnection := boost.MakeDbConnection(environment) + logs := boost.MakeLogs(environment) + adminUser := boost.MakeAdminUser(environment) + localSentry := boost.MakeSentry(environment) defer (*logs).Close() defer (*dbConnection).Close() mux := http.NewServeMux() - app := bootstrap.MakeApp(mux, &bootstrap.App{ + app := boost.MakeApp(mux, &boost.App{ Validator: validator, Logs: logs, DbConnection: dbConnection, From e9604491f8d2358bf6ef8909c3cfaa3178edb695 Mon Sep 17 00:00:00 2001 From: Gustavo Ocanto Date: Fri, 30 May 2025 11:33:20 +0800 Subject: [PATCH 5/5] format --- config/makefile/env.mk | 2 +- pkg/middleware/middlewares.go | 54 +++++++++++++++++------------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/config/makefile/env.mk b/config/makefile/env.mk index afffdf5d..97ddd84f 100644 --- a/config/makefile/env.mk +++ b/config/makefile/env.mk @@ -4,7 +4,7 @@ ___ENV___ROOT__PATH := $(shell pwd) ___ENV___FILE_NAME := ".env" ___ENV___EXAMPLE_FILE_NAME := ".env.example" -include $(___ENV___ROOT__PATH)/.env +-include $(___ENV___ROOT__PATH)/.env env\:init: @if [ ! -f $(___ENV___FILE_NAME) ]; then \ diff --git a/pkg/middleware/middlewares.go b/pkg/middleware/middlewares.go index 8a6186a8..0af05cc7 100644 --- a/pkg/middleware/middlewares.go +++ b/pkg/middleware/middlewares.go @@ -1,49 +1,49 @@ package middleware import ( - "fmt" - "github.com/gocanto/blog/env" - "github.com/gocanto/blog/pkg" - "github.com/gocanto/blog/pkg/response" - "log/slog" - "net/http" + "fmt" + "github.com/gocanto/blog/env" + "github.com/gocanto/blog/pkg" + "github.com/gocanto/blog/pkg/response" + "log/slog" + "net/http" ) func (s MiddlewaresStack) Logging(next pkg.BaseHandler) pkg.BaseHandler { - return func(w http.ResponseWriter, r *http.Request) *response.Response { - slog.Info(fmt.Sprintf("Incoming request: [method:%s] [path:%s].", r.Method, r.URL.Path)) + return func(w http.ResponseWriter, r *http.Request) *response.Response { + slog.Info(fmt.Sprintf("Incoming request: [method:%s] [path:%s].", r.Method, r.URL.Path)) - err := next(w, r) + err := next(w, r) - if err != nil { - slog.Error(fmt.Sprintf("Handler returned error: %s", err)) - } + if err != nil { + slog.Error(fmt.Sprintf("Handler returned error: %s", err)) + } - return err - } + return err + } } func (s MiddlewaresStack) AdminUser(next pkg.BaseHandler) pkg.BaseHandler { - return func(w http.ResponseWriter, r *http.Request) *response.Response { - salt := r.Header.Get(env.ApiKeyHeader) + return func(w http.ResponseWriter, r *http.Request) *response.Response { + salt := r.Header.Get(env.ApiKeyHeader) - if s.isAdminUser(salt) { - return next(w, r) - } + if s.isAdminUser(salt) { + return next(w, r) + } - return response.Unauthorized("Unauthorized", nil) - } + return response.Unauthorized("Unauthorized", nil) + } } func (s MiddlewaresStack) isAdminUser(seed string) bool { - return s.userAdminResolver(seed) + return s.userAdminResolver(seed) } func (s MiddlewaresStack) Push(handler pkg.BaseHandler, middlewares ...Middleware) pkg.BaseHandler { - // Apply middleware in reverse order, so the first middleware in the list is executed first. - for i := len(middlewares) - 1; i >= 0; i-- { - handler = middlewares[i](handler) - } + // Apply middleware in reverse order, so the first middleware in the list is executed first. + for i := len(middlewares) - 1; i >= 0; i-- { + handler = middlewares[i](handler) + } - return handler + return handler }