telegram-bot-manager/routers/api/v1/verifycode/verifycode.go

61 lines
1.5 KiB
Go

package verifycode
import (
"jannex/telegram-bot-manager/modules/cache"
"jannex/telegram-bot-manager/modules/logger"
"jannex/telegram-bot-manager/modules/structs"
"jannex/telegram-bot-manager/modules/utils"
"time"
"git.ex.umbach.dev/Alex/roese-utils/rslogger"
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
"github.com/gofiber/fiber/v2"
)
func GetVerifyCode(c *fiber.Ctx) error {
// swagger:operation GET /v1/verifycode/{userId} verifycode getVerifyCode
// ---
// summary: Get verify code for user
// consumes:
// - application/json
// produces:
// - application/json
// parameters:
// - name: userId
// in: params
// description: User ID
// required: true
// type: string
// responses:
// '200':
// description: OK
// schema:
// "$ref": "#/definitions/VerifyCodeResponse"
// '400':
// description: Bad request
// '500':
// description: Internal server error
var params structs.UserIdParam
if err := rsutils.ParamsParserHelper(c, &params); err != nil {
return c.SendStatus(fiber.StatusBadRequest)
}
code, err := rsutils.GenerateCode(6)
if err != nil {
return c.SendStatus(fiber.StatusInternalServerError)
}
cache.AddTempVerifyCode(structs.TempVerifyCode{
UserId: params.UserId,
Code: code,
ExpiredAt: time.Now().Add(utils.TempVerifyCodeExpirationTime),
})
logger.AddSystemLog(rslogger.LogTypeInfo, "Generated verify code for user %s", params.UserId)
return c.JSON(structs.VerifyCodeResponse{Code: code})
}