Documentation
¶
Index ¶
- Variables
- func AboutHandler(c *fiber.Ctx) error
- func AdEggConversationHandler(c *fiber.Ctx) error
- func AdHandler(c *fiber.Ctx) error
- func AdShareCopyHandler(c *fiber.Ctx) error
- func AdShareHandler(c *fiber.Ctx) error
- func AdminClicksHandler(c *fiber.Ctx) error
- func AdminDashboardHandler(c *fiber.Ctx) error
- func AdminEmbeddingsBackfillHandler(c *fiber.Ctx) error
- func AdminEmbeddingsClearAllCachesHandler(c *fiber.Ctx) error
- func AdminEmbeddingsClearQueryCacheHandler(c *fiber.Ctx) error
- func AdminEmbeddingsClearSiteCacheHandler(c *fiber.Ctx) error
- func AdminEmbeddingsClearUserCacheHandler(c *fiber.Ctx) error
- func AdminEmbeddingsHandler(c *fiber.Ctx) error
- func AdminRequired(c *fiber.Ctx) error
- func AdminSMSQueueHandler(c *fiber.Ctx) error
- func AdminTabHandler(c *fiber.Ctx) error
- func AdminUserDeleteHandler(c *fiber.Ctx) error
- func AdminUserDemoteHandler(c *fiber.Ctx) error
- func AdminUserPromoteHandler(c *fiber.Ctx) error
- func AdminUserRestoreHandler(c *fiber.Ctx) error
- func AdminUsersHandler(c *fiber.Ctx) error
- func AuthRequired(c *fiber.Ctx) error
- func BookmarkHandler(c *fiber.Ctx) error
- func BuildSearchParamsForTest(c *fiber.Ctx, state cookie.SearchState, categoryID int) search.Params
- func CategorySelectHandler(c *fiber.Ctx) error
- func ChangePasswordHandler(c *fiber.Ctx) error
- func ConfigureHelmet() fiber.Handler
- func ConversationModalHandler(c *fiber.Ctx) error
- func CreateAdHandler(c *fiber.Ctx) error
- func DeleteAccountHandler(c *fiber.Ctx) error
- func DeleteAdHandler(c *fiber.Ctx) error
- func EditAdHandler(c *fiber.Ctx) error
- func EditSuggestionsHandler(c *fiber.Ctx) error
- func EggOpinionHandler(c *fiber.Ctx) error
- func ErrorHandler(c *fiber.Ctx, err error) error
- func ErrorPageHandler(c *fiber.Ctx) error
- func FAQHandler(c *fiber.Ctx) error
- func HandleHealth(c *fiber.Ctx) error
- func HideFiltersHandler(c *fiber.Ctx) error
- func HomeHandler(c *fiber.Ctx) error
- func ImageFullScreenHandler(c *fiber.Ctx) error
- func ImageHandler(c *fiber.Ctx) error
- func ImageNavigationHandler(c *fiber.Ctx) error
- func JWTMiddleware(c *fiber.Ctx) error
- func LoginHandler(c *fiber.Ctx) error
- func LoginSubmitHandler(c *fiber.Ctx) error
- func LogoutHandler(c *fiber.Ctx) error
- func MessageModalHandler(c *fiber.Ctx) error
- func ModalRemoveHandler(c *fiber.Ctx) error
- func NewAdHandler(c *fiber.Ctx) error
- func NewAdPriceFieldHandler(c *fiber.Ctx) error
- func NotificationsToggleHandler(c *fiber.Ctx) error
- func RegisterHandler(c *fiber.Ctx) error
- func RegisterStep1Handler(c *fiber.Ctx) error
- func RegisterStep2Handler(c *fiber.Ctx) error
- func RegisterStep3Handler(c *fiber.Ctx) error
- func RestoreAdHandler(c *fiber.Ctx) error
- func SMSWebhookHandler(c *fiber.Ctx) error
- func SSEHandler(c *fiber.Ctx) error
- func SaveSearchStateForTest(c *fiber.Ctx, fromForm bool) cookie.SearchState
- func SearchPageHandler(c *fiber.Ctx) error
- func SendConversationMessageHandler(c *fiber.Ctx) error
- func SendMessageHandler(c *fiber.Ctx) error
- func SendSSEEvent(userID int, event SSEEvent)
- func SetAdImageStore(store imagestore.Store)
- func ShowFiltersHandler(c *fiber.Ctx) error
- func SuggestionsHandler(c *fiber.Ctx) error
- func SwitchCategoryHandler(c *fiber.Ctx) error
- func ThrowEggHandler(c *fiber.Ctx) error
- func UnthrowEggHandler(c *fiber.Ctx) error
- func UpdateAdHandler(c *fiber.Ctx) error
- func UserEggConversationHandler(c *fiber.Ctx) error
- func UserMenuHandler(c *fiber.Ctx) error
- func UserMessagesHandler(c *fiber.Ctx) error
- func UserMyAdsHandler(c *fiber.Ctx) error
- func UserMyAdsTabHandler(c *fiber.Ctx) error
- func UserProfileHandler(c *fiber.Ctx) error
- func UserSettingsHandler(c *fiber.Ctx) error
- func UserSummaryHandler(c *fiber.Ctx) error
- func ViewHandler(c *fiber.Ctx) error
- func WelcomeHandler(c *fiber.Ctx) error
- type SSEEvent
Constants ¶
This section is empty.
Variables ¶
var CSRFMiddleware = csrf.New(csrf.Config{ KeyLookup: "header:X-Csrf-Token", ContextKey: "csrf-token", CookieName: "_csrf", CookieHTTPOnly: true, CookieSecure: config.CookieSecure, CookieSameSite: "Strict", CookiePath: "/", ErrorHandler: func(c *fiber.Ctx, err error) error { if c.Get("HX-Request") != "" { return ErrorHandler(c, fiber.NewError(fiber.StatusForbidden, "CSRF token missing or invalid. Please refresh the page and try again.")) } return c.Status(fiber.StatusForbidden).JSON(fiber.Map{ "error": "CSRF token missing or invalid", }) }, Next: func(c *fiber.Ctx) bool { path := c.Path() return path == "/api/sms/webhook" }, })
CSRFMiddleware is the CSRF protection middleware configured for Double-Submit Cookie Pattern with cookie-based storage. The token is stored in a secure cookie and validated against the header value. This pattern works across multiple instances without requiring shared session storage.
var RegistrationRateLimiter = limiter.New(limiter.Config{ Max: config.RegistrationRateLimitMax, Expiration: config.RegistrationRateLimitExp, KeyGenerator: func(c *fiber.Ctx) string { return c.IP() }, LimitReached: func(c *fiber.Ctx) error { minutes := int(config.RegistrationRateLimitExp.Minutes()) errorMsg := fmt.Sprintf("Too many registration attempts. "+ "Please try again in %d minutes.", minutes) return showError(c, errorMsg) }, })
RegistrationRateLimiter is a strict rate limiter for registration (per IP)
Functions ¶
func AboutHandler ¶
func AdShareCopyHandler ¶
func AdShareHandler ¶
func AdminClicksHandler ¶ added in v0.0.18
func AdminDashboardHandler ¶
func AdminEmbeddingsBackfillHandler ¶ added in v0.0.18
func AdminEmbeddingsClearAllCachesHandler ¶ added in v0.0.18
func AdminEmbeddingsClearQueryCacheHandler ¶ added in v0.0.18
func AdminEmbeddingsClearSiteCacheHandler ¶ added in v0.0.18
func AdminEmbeddingsClearUserCacheHandler ¶ added in v0.0.18
func AdminEmbeddingsHandler ¶ added in v0.0.18
func AdminRequired ¶
AdminRequired is a middleware that requires a user to be an admin.
func AdminSMSQueueHandler ¶
func AdminTabHandler ¶
func AdminUserDeleteHandler ¶
func AdminUserDemoteHandler ¶
func AdminUserPromoteHandler ¶
func AdminUserRestoreHandler ¶
func AdminUsersHandler ¶
func AuthRequired ¶
AuthRequired is a middleware that requires a user to be logged in.
func BookmarkHandler ¶
func BuildSearchParamsForTest ¶
BuildSearchParamsForTest exposes parseSearchParamsFromState for integration tests.
func CategorySelectHandler ¶
func ChangePasswordHandler ¶
func ConfigureHelmet ¶
ConfigureHelmet returns a configured Helmet middleware with custom CSP, DENY for X-Frame-Options, and strict-origin-when-cross-origin for Referrer-Policy.
func CreateAdHandler ¶
func DeleteAccountHandler ¶
func DeleteAdHandler ¶
func EditAdHandler ¶
func EditSuggestionsHandler ¶
func EggOpinionHandler ¶
func ErrorPageHandler ¶
ErrorPageHandler displays an error page based on query parameters
func FAQHandler ¶
func HandleHealth ¶
HandleHealth returns the health status of the application
func HideFiltersHandler ¶
func HomeHandler ¶
func ImageFullScreenHandler ¶
func ImageHandler ¶
func ImageNavigationHandler ¶
func JWTMiddleware ¶
JWTMiddleware is a middleware that validates a JWT token and sets the user in the context.
func LoginHandler ¶
func LoginSubmitHandler ¶
func LogoutHandler ¶
func MessageModalHandler ¶
func ModalRemoveHandler ¶
func NewAdHandler ¶
func NewAdPriceFieldHandler ¶
func RegisterHandler ¶
func RegisterStep1Handler ¶
RegisterStep1Handler handles the first step submission and sends SMS
func RegisterStep2Handler ¶
func RegisterStep3Handler ¶
func RestoreAdHandler ¶
func SMSWebhookHandler ¶
SMSWebhookHandler processes Twilio webhook callbacks for SMS status updates and incoming messages
func SSEHandler ¶
SSEHandler handles SSE stream for a specific user
func SaveSearchStateForTest ¶
func SaveSearchStateForTest(c *fiber.Ctx, fromForm bool) cookie.SearchState
SaveSearchStateForTest exposes saveSearchStateFromRequest for integration tests.
func SearchPageHandler ¶
func SendMessageHandler ¶
func SendSSEEvent ¶
SendSSEEvent sends an SSE event to all connections for a specific user If the user is not connected, the event is dropped
func SetAdImageStore ¶
func SetAdImageStore(store imagestore.Store)
SetAdImageStore replaces the image store (required at startup; for tests use local store).
func ShowFiltersHandler ¶
func SuggestionsHandler ¶
func SwitchCategoryHandler ¶
func ThrowEggHandler ¶
func UnthrowEggHandler ¶
func UpdateAdHandler ¶
func UserMenuHandler ¶
func UserMessagesHandler ¶
func UserMyAdsHandler ¶
func UserMyAdsTabHandler ¶
func UserProfileHandler ¶
func UserSettingsHandler ¶
func UserSummaryHandler ¶
func ViewHandler ¶
func WelcomeHandler ¶
Types ¶
Source Files
¶
- ad.go
- ad_create.go
- ad_edit.go
- ad_fields.go
- ad_image_upload.go
- ad_image_validation.go
- ad_suggestions.go
- admin.go
- admin_clicks.go
- admin_embeddings.go
- api.go
- auth.go
- bookmark.go
- category.go
- egg.go
- error.go
- health.go
- home.go
- image.go
- image_store.go
- jwt.go
- login.go
- message.go
- register.go
- render.go
- search_params.go
- security.go
- sms.go
- sse.go
- user.go
- view.go