Get myself current status API

This commit is contained in:
2024-06-26 20:52:35 +08:00
parent feabff16ec
commit f2b8401746
3 changed files with 26 additions and 3 deletions

View File

@ -35,6 +35,7 @@ func MapAPIs(app *fiber.App) {
me.Post("/confirm", doRegisterConfirm)
me.Get("/status", getStatus)
me.Post("/status", setStatus)
me.Put("/status", editStatus)
me.Delete("/status", clearStatus)

View File

@ -33,6 +33,24 @@ func getStatus(c *fiber.Ctx) error {
})
}
func getMyselfStatus(c *fiber.Ctx) error {
user := c.Locals("user").(models.Account)
if err := exts.EnsureAuthenticated(c); err != nil {
return err
}
status, err := services.GetStatus(user.ID)
disturbable := services.GetStatusDisturbable(user.ID) == nil
online := services.GetStatusOnline(user.ID) == nil
return c.JSON(fiber.Map{
"status": lo.Ternary(err == nil, &status, nil),
"last_seen_at": user.Profile.LastSeenAt,
"is_disturbable": disturbable,
"is_online": online,
})
}
func setStatus(c *fiber.Ctx) error {
user := c.Locals("user").(models.Account)
if err := exts.EnsureAuthenticated(c); err != nil {