From ae01554b0bb3f34e9537a8a480353d1fdad179e4 Mon Sep 17 00:00:00 2001 From: Angel Beltran Date: Sun, 11 Jan 2026 15:27:54 -0700 Subject: [PATCH] renamed site directory to server --- internal/domains/accounts/accounts.go | 9 ++- internal/domains/authentication/auth.go | 9 ++- internal/domains/platforms/etsy/etsy.go | 5 +- internal/domains/raw_events/events.go | 9 ++- internal/{site => server}/accounts.go | 6 +- internal/{site => server}/cookies/auth.go | 0 internal/{site => server}/cookies/expired.go | 0 internal/{site => server}/login.go | 6 +- internal/{site => server}/middleware/auth.go | 4 +- internal/{site => server}/redirect/code.go | 0 internal/{site => server}/response/body.go | 2 +- internal/{site => server}/response/cookie.go | 2 +- internal/{site => server}/response/error.go | 0 internal/{site => server}/response/handler.go | 0 internal/{site => server}/response/html.go | 2 +- internal/{site => server}/response/json.go | 2 +- internal/{site => server}/response/mux.go | 0 .../{site => server}/response/redirect.go | 2 +- .../{site => server}/response/response.go | 2 +- internal/{site => server}/response/status.go | 2 +- internal/{site => server}/response/write.go | 0 .../scripts/_hyperscript.min.js.gz | Bin .../{site => server}/scripts/htmx.min.js.gz | Bin internal/{site => server}/server.go | 10 +++- .../{site => server}/styles/accessibility.css | 0 .../{site => server}/styles/backgrounds.css | 0 internal/{site => server}/styles/borders.css | 0 .../{site => server}/styles/components.css | 0 internal/{site => server}/styles/effects.css | 0 internal/{site => server}/styles/filters.css | 0 .../styles/flexbox-and-grid.css | 0 internal/{site => server}/styles/index.css | 0 .../{site => server}/styles/interactivity.css | 0 internal/{site => server}/styles/layout.css | 0 internal/{site => server}/styles/sizing.css | 0 internal/{site => server}/styles/source.css | 0 internal/{site => server}/styles/spacing.css | 0 internal/{site => server}/styles/svg.css | 0 internal/{site => server}/styles/tables.css | 0 .../{site => server}/styles/transforms.css | 0 .../styles/transitions-and-animations.css | 0 .../{site => server}/styles/typography.css | 0 internal/{site => server}/templates.go | 7 ++- .../draft/listings/{orderIndex}.html.tmpl | 0 .../inventory/sync-table-v2.html.tmpl | 0 .../{acctID}/inventory/sync-table.html.tmpl | 0 .../inventory/sync-table/new-row.html.tmpl | 0 .../sync-table/showcase-table.html.tmpl | 0 .../component_bodies/button-dev.html.tmpl | 0 .../component_bodies/nav_bar.html.tmpl | 0 .../templates/layout.html.tmpl | 0 .../page_bodies/account-creation.html.tmpl | 0 .../accounts/{acctID}/index.html.tmpl | 0 .../accounts/{acctID}/inventory.html.tmpl | 0 .../accounts/{acctID}/reports.html.tmpl | 0 .../templates/page_bodies/conflict.html.tmpl | 0 .../templates/page_bodies/index.html.tmpl | 0 .../templates/page_bodies/login.html.tmpl | 0 .../templates/page_bodies/not-found.html.tmpl | 0 .../templates/page_bodies/sign-up.html.tmpl | 0 internal/webhooks/etsy/webhooks.go | 4 ++ internal/webhooks/tiktok/webhooks.go | 3 +- internal/webhooks/webhooks.go | 30 ++++++++-- internal/webhooks/wix/webhooks.go | 3 +- main.go | 53 +++++++++++++----- 65 files changed, 123 insertions(+), 49 deletions(-) rename internal/{site => server}/accounts.go (97%) rename internal/{site => server}/cookies/auth.go (100%) rename internal/{site => server}/cookies/expired.go (100%) rename internal/{site => server}/login.go (94%) rename internal/{site => server}/middleware/auth.go (98%) rename internal/{site => server}/redirect/code.go (100%) rename internal/{site => server}/response/body.go (97%) rename internal/{site => server}/response/cookie.go (97%) rename internal/{site => server}/response/error.go (100%) rename internal/{site => server}/response/handler.go (100%) rename internal/{site => server}/response/html.go (97%) rename internal/{site => server}/response/json.go (97%) rename internal/{site => server}/response/mux.go (100%) rename internal/{site => server}/response/redirect.go (98%) rename internal/{site => server}/response/response.go (91%) rename internal/{site => server}/response/status.go (97%) rename internal/{site => server}/response/write.go (100%) rename internal/{site => server}/scripts/_hyperscript.min.js.gz (100%) rename internal/{site => server}/scripts/htmx.min.js.gz (100%) rename internal/{site => server}/server.go (96%) rename internal/{site => server}/styles/accessibility.css (100%) rename internal/{site => server}/styles/backgrounds.css (100%) rename internal/{site => server}/styles/borders.css (100%) rename internal/{site => server}/styles/components.css (100%) rename internal/{site => server}/styles/effects.css (100%) rename internal/{site => server}/styles/filters.css (100%) rename internal/{site => server}/styles/flexbox-and-grid.css (100%) rename internal/{site => server}/styles/index.css (100%) rename internal/{site => server}/styles/interactivity.css (100%) rename internal/{site => server}/styles/layout.css (100%) rename internal/{site => server}/styles/sizing.css (100%) rename internal/{site => server}/styles/source.css (100%) rename internal/{site => server}/styles/spacing.css (100%) rename internal/{site => server}/styles/svg.css (100%) rename internal/{site => server}/styles/tables.css (100%) rename internal/{site => server}/styles/transforms.css (100%) rename internal/{site => server}/styles/transitions-and-animations.css (100%) rename internal/{site => server}/styles/typography.css (100%) rename internal/{site => server}/templates.go (98%) rename internal/{site => server}/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl (100%) rename internal/{site => server}/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl (100%) rename internal/{site => server}/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl (100%) rename internal/{site => server}/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl (100%) rename internal/{site => server}/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl (100%) rename internal/{site => server}/templates/component_bodies/button-dev.html.tmpl (100%) rename internal/{site => server}/templates/component_bodies/nav_bar.html.tmpl (100%) rename internal/{site => server}/templates/layout.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/account-creation.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/accounts/{acctID}/index.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/accounts/{acctID}/reports.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/conflict.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/index.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/login.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/not-found.html.tmpl (100%) rename internal/{site => server}/templates/page_bodies/sign-up.html.tmpl (100%) diff --git a/internal/domains/accounts/accounts.go b/internal/domains/accounts/accounts.go index f62ad56..7458b84 100644 --- a/internal/domains/accounts/accounts.go +++ b/internal/domains/accounts/accounts.go @@ -7,6 +7,7 @@ import ( "context" "errors" "fmt" + "log/slog" "ruben/inventory2/internal/consts" "github.com/jackc/pgx/v5" @@ -15,7 +16,8 @@ import ( type ( Store struct { - db *pgxpool.Pool + log *slog.Logger + db *pgxpool.Pool } Account struct { @@ -59,9 +61,10 @@ type ( } ) -func NewStore(db *pgxpool.Pool) *Store { +func NewStore(logger *slog.Logger, db *pgxpool.Pool) *Store { return &Store{ - db: db, + log: logger, + db: db, } } diff --git a/internal/domains/authentication/auth.go b/internal/domains/authentication/auth.go index f9d7706..cda1995 100644 --- a/internal/domains/authentication/auth.go +++ b/internal/domains/authentication/auth.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "log/slog" "net/url" "time" @@ -36,6 +37,7 @@ const ( type ( // Authenticator is used to authenticate our users. Authenticator struct { + log *slog.Logger *oidc.Provider oauth2.Config db *pgxpool.Pool @@ -59,7 +61,11 @@ type ( ) // New instantiates the *Authenticator. -func New(ctx context.Context, db *pgxpool.Pool) (*Authenticator, error) { +func New( + ctx context.Context, + db *pgxpool.Pool, + logger *slog.Logger, +) (*Authenticator, error) { provider, err := oidc.NewProvider( ctx, "https://"+AUTH0_DOMAIN+"/", @@ -69,6 +75,7 @@ func New(ctx context.Context, db *pgxpool.Pool) (*Authenticator, error) { } return &Authenticator{ + log: logger, Provider: provider, Config: oauth2.Config{ ClientID: AUTH0_CLIENT_ID, diff --git a/internal/domains/platforms/etsy/etsy.go b/internal/domains/platforms/etsy/etsy.go index ab82a54..d6ff969 100644 --- a/internal/domains/platforms/etsy/etsy.go +++ b/internal/domains/platforms/etsy/etsy.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "io" + "log/slog" "net/http" "net/url" "strconv" @@ -32,6 +33,7 @@ import ( type ( Platform struct { + log *slog.Logger oAuthRedirectURI func(acctID int64) string apiKeystring string apiSharedSecret string @@ -63,8 +65,9 @@ const ( scopeTransactionsWrite = "transactions_w" // Update a member's sales data. ) -func NewPlatform(oAuthRedirectURI func(acctID int64) string, apiKeystring, apiSharedSecret string, db *pgxpool.Pool) *Platform { +func NewPlatform(logger *slog.Logger, oAuthRedirectURI func(acctID int64) string, apiKeystring, apiSharedSecret string, db *pgxpool.Pool) *Platform { return &Platform{ + log: logger, oAuthRedirectURI: oAuthRedirectURI, apiKeystring: apiKeystring, apiSharedSecret: apiSharedSecret, diff --git a/internal/domains/raw_events/events.go b/internal/domains/raw_events/events.go index 6273e40..fb8785b 100644 --- a/internal/domains/raw_events/events.go +++ b/internal/domains/raw_events/events.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "log/slog" "time" "github.com/jackc/pgx/v5" @@ -13,7 +14,8 @@ import ( type ( Store struct { - db *pgxpool.Pool + log *slog.Logger + db *pgxpool.Pool } Event struct { @@ -25,9 +27,10 @@ type ( } ) -func NewStore(db *pgxpool.Pool) *Store { +func NewStore(logger *slog.Logger, db *pgxpool.Pool) *Store { return &Store{ - db: db, + log: logger, + db: db, } } diff --git a/internal/site/accounts.go b/internal/server/accounts.go similarity index 97% rename from internal/site/accounts.go rename to internal/server/accounts.go index 63122ef..5a2ac5a 100644 --- a/internal/site/accounts.go +++ b/internal/server/accounts.go @@ -1,4 +1,4 @@ -package site +package server import ( "errors" @@ -8,8 +8,8 @@ import ( "ruben/inventory2/internal/consts" "ruben/inventory2/internal/domains/accounts" - "ruben/inventory2/internal/site/middleware" - "ruben/inventory2/internal/site/response" + "ruben/inventory2/internal/server/middleware" + "ruben/inventory2/internal/server/response" ) // POST /accounts diff --git a/internal/site/cookies/auth.go b/internal/server/cookies/auth.go similarity index 100% rename from internal/site/cookies/auth.go rename to internal/server/cookies/auth.go diff --git a/internal/site/cookies/expired.go b/internal/server/cookies/expired.go similarity index 100% rename from internal/site/cookies/expired.go rename to internal/server/cookies/expired.go diff --git a/internal/site/login.go b/internal/server/login.go similarity index 94% rename from internal/site/login.go rename to internal/server/login.go index 0814a52..c99e2db 100644 --- a/internal/site/login.go +++ b/internal/server/login.go @@ -1,12 +1,12 @@ -package site +package server import ( "context" "fmt" "net/http" "ruben/inventory2/internal/domains/authentication" - "ruben/inventory2/internal/site/cookies" - "ruben/inventory2/internal/site/response" + "ruben/inventory2/internal/server/cookies" + "ruben/inventory2/internal/server/response" ) // TODO: use a login/logout server? (prefix: '/auth'?) diff --git a/internal/site/middleware/auth.go b/internal/server/middleware/auth.go similarity index 98% rename from internal/site/middleware/auth.go rename to internal/server/middleware/auth.go index aab270d..61fb2b6 100644 --- a/internal/site/middleware/auth.go +++ b/internal/server/middleware/auth.go @@ -12,8 +12,8 @@ import ( "ruben/inventory2/internal/consts" "ruben/inventory2/internal/domains/accounts" "ruben/inventory2/internal/domains/authentication" - "ruben/inventory2/internal/site/cookies" - "ruben/inventory2/internal/site/response" + "ruben/inventory2/internal/server/cookies" + "ruben/inventory2/internal/server/response" ) type ( diff --git a/internal/site/redirect/code.go b/internal/server/redirect/code.go similarity index 100% rename from internal/site/redirect/code.go rename to internal/server/redirect/code.go diff --git a/internal/site/response/body.go b/internal/server/response/body.go similarity index 97% rename from internal/site/response/body.go rename to internal/server/response/body.go index 0a877cc..59ea17d 100644 --- a/internal/site/response/body.go +++ b/internal/server/response/body.go @@ -4,7 +4,7 @@ import ( "fmt" "io" "net/http" - "ruben/inventory2/internal/site/redirect" + "ruben/inventory2/internal/server/redirect" ) type ( diff --git a/internal/site/response/cookie.go b/internal/server/response/cookie.go similarity index 97% rename from internal/site/response/cookie.go rename to internal/server/response/cookie.go index 3fd3468..b171073 100644 --- a/internal/site/response/cookie.go +++ b/internal/server/response/cookie.go @@ -4,7 +4,7 @@ import ( "fmt" "io" "net/http" - "ruben/inventory2/internal/site/redirect" + "ruben/inventory2/internal/server/redirect" ) type ( diff --git a/internal/site/response/error.go b/internal/server/response/error.go similarity index 100% rename from internal/site/response/error.go rename to internal/server/response/error.go diff --git a/internal/site/response/handler.go b/internal/server/response/handler.go similarity index 100% rename from internal/site/response/handler.go rename to internal/server/response/handler.go diff --git a/internal/site/response/html.go b/internal/server/response/html.go similarity index 97% rename from internal/site/response/html.go rename to internal/server/response/html.go index 258fdd2..37af3d8 100644 --- a/internal/site/response/html.go +++ b/internal/server/response/html.go @@ -5,7 +5,7 @@ import ( "fmt" "io" "net/http" - "ruben/inventory2/internal/site/redirect" + "ruben/inventory2/internal/server/redirect" ) type ( diff --git a/internal/site/response/json.go b/internal/server/response/json.go similarity index 97% rename from internal/site/response/json.go rename to internal/server/response/json.go index c4ed75f..cfc0115 100644 --- a/internal/site/response/json.go +++ b/internal/server/response/json.go @@ -6,7 +6,7 @@ import ( "fmt" "io" "net/http" - "ruben/inventory2/internal/site/redirect" + "ruben/inventory2/internal/server/redirect" ) type ( diff --git a/internal/site/response/mux.go b/internal/server/response/mux.go similarity index 100% rename from internal/site/response/mux.go rename to internal/server/response/mux.go diff --git a/internal/site/response/redirect.go b/internal/server/response/redirect.go similarity index 98% rename from internal/site/response/redirect.go rename to internal/server/response/redirect.go index 15dcb33..ad25948 100644 --- a/internal/site/response/redirect.go +++ b/internal/server/response/redirect.go @@ -4,7 +4,7 @@ import ( "fmt" "io" "net/http" - "ruben/inventory2/internal/site/redirect" + "ruben/inventory2/internal/server/redirect" ) type ( diff --git a/internal/site/response/response.go b/internal/server/response/response.go similarity index 91% rename from internal/site/response/response.go rename to internal/server/response/response.go index da0ca57..1991ac2 100644 --- a/internal/site/response/response.go +++ b/internal/server/response/response.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "ruben/inventory2/internal/site/redirect" + "ruben/inventory2/internal/server/redirect" ) type ( diff --git a/internal/site/response/status.go b/internal/server/response/status.go similarity index 97% rename from internal/site/response/status.go rename to internal/server/response/status.go index 9a722a5..51d0730 100644 --- a/internal/site/response/status.go +++ b/internal/server/response/status.go @@ -5,7 +5,7 @@ import ( "io" "net/http" - "ruben/inventory2/internal/site/redirect" + "ruben/inventory2/internal/server/redirect" ) type ( diff --git a/internal/site/response/write.go b/internal/server/response/write.go similarity index 100% rename from internal/site/response/write.go rename to internal/server/response/write.go diff --git a/internal/site/scripts/_hyperscript.min.js.gz b/internal/server/scripts/_hyperscript.min.js.gz similarity index 100% rename from internal/site/scripts/_hyperscript.min.js.gz rename to internal/server/scripts/_hyperscript.min.js.gz diff --git a/internal/site/scripts/htmx.min.js.gz b/internal/server/scripts/htmx.min.js.gz similarity index 100% rename from internal/site/scripts/htmx.min.js.gz rename to internal/server/scripts/htmx.min.js.gz diff --git a/internal/site/server.go b/internal/server/server.go similarity index 96% rename from internal/site/server.go rename to internal/server/server.go index 2e2b373..ea7189e 100644 --- a/internal/site/server.go +++ b/internal/server/server.go @@ -1,9 +1,10 @@ -package site +package server import ( "encoding/json" "fmt" "html/template" + "log/slog" "net/http" "path" "strconv" @@ -16,11 +17,12 @@ import ( "ruben/inventory2/internal/domains/authentication" etsy_platform "ruben/inventory2/internal/domains/platforms/etsy" "ruben/inventory2/internal/domains/raw_events" - "ruben/inventory2/internal/site/middleware" - "ruben/inventory2/internal/site/response" + "ruben/inventory2/internal/server/middleware" + "ruben/inventory2/internal/server/response" ) type Server struct { + log *slog.Logger http.Handler contentDir string templater *templater.Templater @@ -32,6 +34,7 @@ type Server struct { } func NewServer( + logger *slog.Logger, contentDir string, rawEvents *raw_events.Store, accts *accounts.Store, @@ -53,6 +56,7 @@ func NewServer( }) s := &Server{ + log: logger, Handler: mux, contentDir: contentDir, templater: templater.NewTemplater( diff --git a/internal/site/styles/accessibility.css b/internal/server/styles/accessibility.css similarity index 100% rename from internal/site/styles/accessibility.css rename to internal/server/styles/accessibility.css diff --git a/internal/site/styles/backgrounds.css b/internal/server/styles/backgrounds.css similarity index 100% rename from internal/site/styles/backgrounds.css rename to internal/server/styles/backgrounds.css diff --git a/internal/site/styles/borders.css b/internal/server/styles/borders.css similarity index 100% rename from internal/site/styles/borders.css rename to internal/server/styles/borders.css diff --git a/internal/site/styles/components.css b/internal/server/styles/components.css similarity index 100% rename from internal/site/styles/components.css rename to internal/server/styles/components.css diff --git a/internal/site/styles/effects.css b/internal/server/styles/effects.css similarity index 100% rename from internal/site/styles/effects.css rename to internal/server/styles/effects.css diff --git a/internal/site/styles/filters.css b/internal/server/styles/filters.css similarity index 100% rename from internal/site/styles/filters.css rename to internal/server/styles/filters.css diff --git a/internal/site/styles/flexbox-and-grid.css b/internal/server/styles/flexbox-and-grid.css similarity index 100% rename from internal/site/styles/flexbox-and-grid.css rename to internal/server/styles/flexbox-and-grid.css diff --git a/internal/site/styles/index.css b/internal/server/styles/index.css similarity index 100% rename from internal/site/styles/index.css rename to internal/server/styles/index.css diff --git a/internal/site/styles/interactivity.css b/internal/server/styles/interactivity.css similarity index 100% rename from internal/site/styles/interactivity.css rename to internal/server/styles/interactivity.css diff --git a/internal/site/styles/layout.css b/internal/server/styles/layout.css similarity index 100% rename from internal/site/styles/layout.css rename to internal/server/styles/layout.css diff --git a/internal/site/styles/sizing.css b/internal/server/styles/sizing.css similarity index 100% rename from internal/site/styles/sizing.css rename to internal/server/styles/sizing.css diff --git a/internal/site/styles/source.css b/internal/server/styles/source.css similarity index 100% rename from internal/site/styles/source.css rename to internal/server/styles/source.css diff --git a/internal/site/styles/spacing.css b/internal/server/styles/spacing.css similarity index 100% rename from internal/site/styles/spacing.css rename to internal/server/styles/spacing.css diff --git a/internal/site/styles/svg.css b/internal/server/styles/svg.css similarity index 100% rename from internal/site/styles/svg.css rename to internal/server/styles/svg.css diff --git a/internal/site/styles/tables.css b/internal/server/styles/tables.css similarity index 100% rename from internal/site/styles/tables.css rename to internal/server/styles/tables.css diff --git a/internal/site/styles/transforms.css b/internal/server/styles/transforms.css similarity index 100% rename from internal/site/styles/transforms.css rename to internal/server/styles/transforms.css diff --git a/internal/site/styles/transitions-and-animations.css b/internal/server/styles/transitions-and-animations.css similarity index 100% rename from internal/site/styles/transitions-and-animations.css rename to internal/server/styles/transitions-and-animations.css diff --git a/internal/site/styles/typography.css b/internal/server/styles/typography.css similarity index 100% rename from internal/site/styles/typography.css rename to internal/server/styles/typography.css diff --git a/internal/site/templates.go b/internal/server/templates.go similarity index 98% rename from internal/site/templates.go rename to internal/server/templates.go index 343c024..f788b10 100644 --- a/internal/site/templates.go +++ b/internal/server/templates.go @@ -1,4 +1,4 @@ -package site +package server import ( "errors" @@ -8,10 +8,11 @@ import ( "os" "path" "path/filepath" - "ruben/inventory2/internal/site/middleware" - "ruben/inventory2/internal/site/response" "strconv" "strings" + + "ruben/inventory2/internal/server/middleware" + "ruben/inventory2/internal/server/response" ) // GET / diff --git a/internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl b/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl similarity index 100% rename from internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl rename to internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl diff --git a/internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl b/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl similarity index 100% rename from internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl rename to internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl diff --git a/internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl b/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl similarity index 100% rename from internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl rename to internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl diff --git a/internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl b/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl similarity index 100% rename from internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl rename to internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl diff --git a/internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl b/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl similarity index 100% rename from internal/site/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl rename to internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl diff --git a/internal/site/templates/component_bodies/button-dev.html.tmpl b/internal/server/templates/component_bodies/button-dev.html.tmpl similarity index 100% rename from internal/site/templates/component_bodies/button-dev.html.tmpl rename to internal/server/templates/component_bodies/button-dev.html.tmpl diff --git a/internal/site/templates/component_bodies/nav_bar.html.tmpl b/internal/server/templates/component_bodies/nav_bar.html.tmpl similarity index 100% rename from internal/site/templates/component_bodies/nav_bar.html.tmpl rename to internal/server/templates/component_bodies/nav_bar.html.tmpl diff --git a/internal/site/templates/layout.html.tmpl b/internal/server/templates/layout.html.tmpl similarity index 100% rename from internal/site/templates/layout.html.tmpl rename to internal/server/templates/layout.html.tmpl diff --git a/internal/site/templates/page_bodies/account-creation.html.tmpl b/internal/server/templates/page_bodies/account-creation.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/account-creation.html.tmpl rename to internal/server/templates/page_bodies/account-creation.html.tmpl diff --git a/internal/site/templates/page_bodies/accounts/{acctID}/index.html.tmpl b/internal/server/templates/page_bodies/accounts/{acctID}/index.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/accounts/{acctID}/index.html.tmpl rename to internal/server/templates/page_bodies/accounts/{acctID}/index.html.tmpl diff --git a/internal/site/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl b/internal/server/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl rename to internal/server/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl diff --git a/internal/site/templates/page_bodies/accounts/{acctID}/reports.html.tmpl b/internal/server/templates/page_bodies/accounts/{acctID}/reports.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/accounts/{acctID}/reports.html.tmpl rename to internal/server/templates/page_bodies/accounts/{acctID}/reports.html.tmpl diff --git a/internal/site/templates/page_bodies/conflict.html.tmpl b/internal/server/templates/page_bodies/conflict.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/conflict.html.tmpl rename to internal/server/templates/page_bodies/conflict.html.tmpl diff --git a/internal/site/templates/page_bodies/index.html.tmpl b/internal/server/templates/page_bodies/index.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/index.html.tmpl rename to internal/server/templates/page_bodies/index.html.tmpl diff --git a/internal/site/templates/page_bodies/login.html.tmpl b/internal/server/templates/page_bodies/login.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/login.html.tmpl rename to internal/server/templates/page_bodies/login.html.tmpl diff --git a/internal/site/templates/page_bodies/not-found.html.tmpl b/internal/server/templates/page_bodies/not-found.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/not-found.html.tmpl rename to internal/server/templates/page_bodies/not-found.html.tmpl diff --git a/internal/site/templates/page_bodies/sign-up.html.tmpl b/internal/server/templates/page_bodies/sign-up.html.tmpl similarity index 100% rename from internal/site/templates/page_bodies/sign-up.html.tmpl rename to internal/server/templates/page_bodies/sign-up.html.tmpl diff --git a/internal/webhooks/etsy/webhooks.go b/internal/webhooks/etsy/webhooks.go index b35cfdb..7de0797 100644 --- a/internal/webhooks/etsy/webhooks.go +++ b/internal/webhooks/etsy/webhooks.go @@ -3,6 +3,7 @@ package etsy import ( "encoding/json" "fmt" + "log/slog" "net/http" "strconv" "time" @@ -13,6 +14,7 @@ import ( type ( Webhooks struct { + log *slog.Logger cfg Config db *raw_events.Store etsy *etsy.Platform @@ -24,11 +26,13 @@ type ( ) func NewWebhookHandler( + logger *slog.Logger, db *raw_events.Store, platform *etsy.Platform, cfg Config, ) http.Handler { h := Webhooks{ + log: logger, cfg: cfg, db: db, etsy: platform, diff --git a/internal/webhooks/tiktok/webhooks.go b/internal/webhooks/tiktok/webhooks.go index 891eb70..15535bb 100644 --- a/internal/webhooks/tiktok/webhooks.go +++ b/internal/webhooks/tiktok/webhooks.go @@ -3,13 +3,14 @@ package tiktok import ( "encoding/json" "fmt" + "log/slog" "net/http" "time" "ruben/inventory2/internal/domains/raw_events" ) -func NewWebhookHandler(db *raw_events.Store) http.Handler { +func NewWebhookHandler(logger *slog.Logger, db *raw_events.Store) http.Handler { mux := http.NewServeMux() mux.HandleFunc("POST /test", func(w http.ResponseWriter, r *http.Request) { diff --git a/internal/webhooks/webhooks.go b/internal/webhooks/webhooks.go index fc69001..b3d034b 100644 --- a/internal/webhooks/webhooks.go +++ b/internal/webhooks/webhooks.go @@ -1,6 +1,7 @@ package webhooks import ( + "log/slog" "net/http" etsy_platform "ruben/inventory2/internal/domains/platforms/etsy" @@ -14,12 +15,33 @@ type Config struct { Etsy etsy.Config } -func New(eventsDB *raw_events.Store, etsyPlatform *etsy_platform.Platform, cfg Config) http.Handler { +// TODO: just move over to the 'site' package, and then consider renaming the site package to something else? +func New(logger *slog.Logger, eventsDB *raw_events.Store, etsyPlatform *etsy_platform.Platform, cfg Config) http.Handler { wh := http.NewServeMux() - wh.Handle("/etsy/", http.StripPrefix("/etsy", etsy.NewWebhookHandler(eventsDB, etsyPlatform, cfg.Etsy))) - wh.Handle("/tiktok/", http.StripPrefix("/tiktok", tiktok.NewWebhookHandler(eventsDB))) - wh.Handle("/wix/", http.StripPrefix("/wix", wix.NewWebhookHandler(eventsDB))) + wh.Handle( + "/etsy/", + http.StripPrefix("/etsy", etsy.NewWebhookHandler( + logger.WithGroup("etsy"), + eventsDB, + etsyPlatform, + cfg.Etsy, + )), + ) + wh.Handle( + "/tiktok/", + http.StripPrefix("/tiktok", tiktok.NewWebhookHandler( + logger.WithGroup("tiktok"), + eventsDB, + )), + ) + wh.Handle( + "/wix/", + http.StripPrefix("/wix", wix.NewWebhookHandler( + logger.WithGroup("wix"), + eventsDB, + )), + ) return wh } diff --git a/internal/webhooks/wix/webhooks.go b/internal/webhooks/wix/webhooks.go index 91c7566..85abccd 100644 --- a/internal/webhooks/wix/webhooks.go +++ b/internal/webhooks/wix/webhooks.go @@ -3,13 +3,14 @@ package wix import ( "encoding/json" "fmt" + "log/slog" "net/http" "time" "ruben/inventory2/internal/domains/raw_events" ) -func NewWebhookHandler(db *raw_events.Store) http.Handler { +func NewWebhookHandler(logger *slog.Logger, db *raw_events.Store) http.Handler { mux := http.NewServeMux() mux.HandleFunc("POST /test", func(w http.ResponseWriter, r *http.Request) { diff --git a/main.go b/main.go index 54de119..5ee43dc 100644 --- a/main.go +++ b/main.go @@ -3,12 +3,13 @@ package main //go:generate planter postgres://planter:planter@localhost:5432/inventory_2?sslmode=disable -o diagrams/database_schema.uml //go:generate plantuml diagrams/*.uml -tsvg //go:generate plantuml diagrams/etsy/*.uml -tsvg -//go:generate npx @tailwindcss/cli -i styles/source.css -o styles/index.css --cwd ./internal/site +//go:generate npx @tailwindcss/cli -i styles/source.css -o styles/index.css --cwd ./internal/server import ( "context" "errors" "fmt" + "log/slog" "net/http" "os" "os/signal" @@ -21,7 +22,7 @@ import ( "ruben/inventory2/internal/domains/authentication" etsy_platform "ruben/inventory2/internal/domains/platforms/etsy" "ruben/inventory2/internal/domains/raw_events" - "ruben/inventory2/internal/site" + "ruben/inventory2/internal/server" "ruben/inventory2/internal/webhooks" etsy_webhooks "ruben/inventory2/internal/webhooks/etsy" ) @@ -42,6 +43,17 @@ func runApp(ctx context.Context) error { ctx, shutdown := context.WithCancel(ctx) defer shutdown() + logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ + AddSource: true, + Level: slog.LevelDebug, + ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr { + fmt.Println("slog groups:", groups) + fmt.Println("slog attr:", a) + // TODO: not sure if this will be needed, but keep around until known. + return a + }, + })) + // connect to the database connPool, err := newPool(ctx) @@ -51,7 +63,7 @@ func runApp(ctx context.Context) error { // start background processes - auth, err := authentication.New(ctx, connPool) + auth, err := authentication.New(ctx, connPool, logger.WithGroup("*authentication.Authenticator")) if err != nil { return fmt.Errorf("failed to construct authenticator: %w", err) } @@ -60,7 +72,7 @@ func runApp(ctx context.Context) error { // start http server - srvErrCh := runServer(ctx, connPool, auth) + srvErrCh := runServer(ctx, logger, connPool, auth) // wait for interrupt signal or unrecoverable failure, then shutdown @@ -127,10 +139,10 @@ func runAuthProcesses(ctx context.Context, auth *authentication.Authenticator) < return errCh } -func runServer(ctx context.Context, connPool *pgxpool.Pool, auth *authentication.Authenticator) <-chan error { +func runServer(ctx context.Context, logger *slog.Logger, connPool *pgxpool.Pool, auth *authentication.Authenticator) <-chan error { srv := &http.Server{ Addr: ":8082", // local - Handler: buildHTTPHandler(connPool, auth), + Handler: buildHTTPHandler(logger, connPool, auth), } ctx, cancel := context.WithCancel(ctx) @@ -181,9 +193,10 @@ func runServer(ctx context.Context, connPool *pgxpool.Pool, auth *authentication return errCh } -func buildHTTPHandler(connPool *pgxpool.Pool, auth *authentication.Authenticator) http.Handler { - eventsDB := raw_events.NewStore(connPool) +func buildHTTPHandler(logger *slog.Logger, connPool *pgxpool.Pool, auth *authentication.Authenticator) http.Handler { + eventsDB := raw_events.NewStore(logger.WithGroup("raw-event-store"), connPool) etsy := etsy_platform.NewPlatform( + logger, func(acctID int64) string { return fmt.Sprintf("/oauth/account/%d/auth_code", acctID) }, @@ -191,16 +204,28 @@ func buildHTTPHandler(connPool *pgxpool.Pool, auth *authentication.Authenticator etsyAPISharedSecret, connPool, ) - accts := accounts.NewStore(connPool) + accts := accounts.NewStore(logger, connPool) mux := http.NewServeMux() - mux.Handle("/webhooks/", http.StripPrefix("/webhooks", webhooks.New(eventsDB, etsy, webhooks.Config{ - Etsy: etsy_webhooks.Config{ - OAuthRedirectURIWithAcctIDParam: "/oauth/account/{acctID}/auth_code", + mux.Handle("/webhooks/", http.StripPrefix("/webhooks", webhooks.New( + logger.WithGroup("webhooks"), + eventsDB, + etsy, + webhooks.Config{ + Etsy: etsy_webhooks.Config{ + OAuthRedirectURIWithAcctIDParam: "/oauth/account/{acctID}/auth_code", + }, }, - }))) - mux.Handle("/", site.NewServer("./internal/site", eventsDB, accts, etsy, auth)) + ))) + mux.Handle("/", server.NewServer( + logger.WithGroup("server"), + "./internal/server", + eventsDB, + accts, + etsy, + auth, + )) return mux }