diff --git a/api/resolve_middleware.go b/api/resolve_middleware.go index a19809f0..51ca1d88 100644 --- a/api/resolve_middleware.go +++ b/api/resolve_middleware.go @@ -45,7 +45,6 @@ func (app *ApiServer) getUserId(c *fiber.Ctx) int32 { } func (app *ApiServer) requireUserIdMiddleware(c *fiber.Ctx) error { - // Allow /users/me/* routes to pass through without userId resolution if c.Params("userId") == "me" { return c.Next() } diff --git a/api/server.go b/api/server.go index 8674f83d..49bd7315 100644 --- a/api/server.go +++ b/api/server.go @@ -406,7 +406,7 @@ func NewApiServer(config config.Config) *ApiServer { g.Get("/users/genre/top", app.v1UsersGenreTop) g.Get("/users/account/:wallet", app.requireAuthMiddleware, app.v1UsersAccount) g.Get("/users/verify_token", app.v1UsersVerifyToken) - g.Post("/users/me/ping", app.requireAuthMiddleware, app.postV1UsersPing) + g.Post("/users/me/ping", app.postV1UsersPing) g.Use("/users/handle/:handle", app.requireHandleMiddleware) g.Get("/users/handle/:handle", app.v1User) diff --git a/api/v1_users_ping.go b/api/v1_users_ping.go index c222b726..4c2f7a71 100644 --- a/api/v1_users_ping.go +++ b/api/v1_users_ping.go @@ -10,14 +10,17 @@ func (app *ApiServer) postV1UsersPing(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusServiceUnavailable, "writes not available") } - wallet := app.getAuthedWallet(c) + myId := app.getMyId(c) + if myId == 0 { + return fiber.NewError(fiber.StatusBadRequest, "user_id query param is required") + } _, err := app.writePool.Exec(c.Context(), ` UPDATE users SET last_active_at = now() - WHERE wallet = $1 + WHERE user_id = $1 AND is_current = true - `, wallet) + `, myId) if err != nil { app.logger.Error("postV1UsersPing: failed to update last_active_at", zap.Error(err)) return fiber.NewError(fiber.StatusInternalServerError, "failed to record activity")