diff --git a/pkg/internal/server/api/index.go b/pkg/internal/server/api/index.go index c42f43b..1651c3c 100644 --- a/pkg/internal/server/api/index.go +++ b/pkg/internal/server/api/index.go @@ -59,8 +59,6 @@ func MapAPIs(app *fiber.App, baseURL string) { me.Delete("/tickets/:ticketId", killTicket) me.Post("/confirm", doRegisterConfirm) - me.Post("/password-reset", requestResetPassword) - me.Patch("/password-reset", confirmResetPassword) me.Get("/status", getMyselfStatus) me.Post("/status", setStatus) @@ -80,14 +78,19 @@ func MapAPIs(app *fiber.App, baseURL string) { relations.Post("/:relatedId/decline", declineFriend) } + me.Post("/password-reset", requestResetPassword) + me.Patch("/password-reset", confirmResetPassword) + me.Post("/deletion", requestDeleteAccount) - me.Post("/deletion/confirm", confirmDeleteAccount) + me.Patch("/deletion", confirmDeleteAccount) } directory := api.Group("/users/:alias").Name("User Directory") { directory.Get("/", getOtherUserinfo) directory.Get("/status", getStatus) + + directory.Get("/daily", listOtherUserDailySignRecord) } api.Get("/users", getOtherUserinfoBatch) diff --git a/pkg/internal/server/api/sign_api.go b/pkg/internal/server/api/sign_api.go index e010473..5721a84 100644 --- a/pkg/internal/server/api/sign_api.go +++ b/pkg/internal/server/api/sign_api.go @@ -40,6 +40,42 @@ func listDailySignRecord(c *fiber.Ctx) error { }) } +func listOtherUserDailySignRecord(c *fiber.Ctx) error { + take := c.QueryInt("take", 0) + offset := c.QueryInt("offset", 0) + + alias := c.Params("alias") + + var account models.Account + if err := database.C. + Where(&models.Account{Name: alias}). + First(&account).Error; err != nil { + return fiber.NewError(fiber.StatusBadRequest, err.Error()) + } + + var count int64 + if err := database.C. + Model(&models.SignRecord{}). + Where("account_id = ?", account.ID). + Count(&count).Error; err != nil { + return fiber.NewError(fiber.StatusInternalServerError, err.Error()) + } + + var records []models.SignRecord + if err := database.C. + Where("account_id = ?", account.ID). + Limit(take).Offset(offset). + Order("created_at DESC"). + Find(&records).Error; err != nil { + return fiber.NewError(fiber.StatusInternalServerError, err.Error()) + } + + return c.JSON(fiber.Map{ + "count": count, + "data": records, + }) +} + func getTodayDailySign(c *fiber.Ctx) error { if err := exts.EnsureAuthenticated(c); err != nil { return err