mirror of
https://github.com/veops/oneterm.git
synced 2025-10-19 13:44:47 +08:00
refactor
This commit is contained in:
66
backend/api/controller/history.go
Normal file
66
backend/api/controller/history.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/nicksnyder/go-i18n/v2/i18n"
|
||||
|
||||
mysql "github.com/veops/oneterm/db"
|
||||
myi18n "github.com/veops/oneterm/i18n"
|
||||
"github.com/veops/oneterm/model"
|
||||
)
|
||||
|
||||
// GetHistories godoc
|
||||
//
|
||||
// @Tags history
|
||||
// @Param page_index query int true "page_index"
|
||||
// @Param page_size query int true "page_size"
|
||||
// @Param type query string false "type" Enums(account, asset, command, gateway, node, public_key)
|
||||
// @Param target_id query int false "target_id"
|
||||
// @Param uid query int false "uid"
|
||||
// @Param action_type query int false "create=1 delete=2 update=3"
|
||||
// @Param start query string false "start time, RFC3339"
|
||||
// @Param end query string false "end time, RFC3339"
|
||||
// @Param search query string false "search"
|
||||
// @Success 200 {object} HttpResponse{data=ListData{list=[]model.History}}
|
||||
// @Router /history [get]
|
||||
func (c *Controller) GetHistories(ctx *gin.Context) {
|
||||
db := mysql.DB.Model(&model.History{})
|
||||
db = filterSearch(ctx, db, "old", "new")
|
||||
db, err := filterStartEnd(ctx, db)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
db = filterEqual(ctx, db, "type", "target_id", "action_type", "uid")
|
||||
|
||||
doGet[*model.History](ctx, false, db, "")
|
||||
}
|
||||
|
||||
// GetSessions godoc
|
||||
//
|
||||
// @Tags session
|
||||
// @Success 200 {object} HttpResponse{data=map[string]string}
|
||||
// @Router /history/type/mapping [get]
|
||||
func (c *Controller) GetHistoryTypeMapping(ctx *gin.Context) {
|
||||
lang := ctx.PostForm("lang")
|
||||
accept := ctx.GetHeader("Accept-Language")
|
||||
localizer := i18n.NewLocalizer(myi18n.Bundle, lang, accept)
|
||||
cfg := &i18n.LocalizeConfig{}
|
||||
key2msg := map[string]*i18n.Message{
|
||||
"account": myi18n.MsgTypeMappingAccount,
|
||||
"asset": myi18n.MsgTypeMappingAsset,
|
||||
"command": myi18n.MsgTypeMappingCommand,
|
||||
"gateway": myi18n.MsgTypeMappingGateway,
|
||||
"node": myi18n.MsgTypeMappingNode,
|
||||
"public_key": myi18n.MsgTypeMappingPublicKey,
|
||||
}
|
||||
data := make(map[string]string)
|
||||
for k, v := range key2msg {
|
||||
cfg.DefaultMessage = v
|
||||
msg, _ := localizer.Localize(cfg)
|
||||
data[k] = msg
|
||||
}
|
||||
|
||||
ctx.JSON(http.StatusOK, NewHttpResponseWithData(data))
|
||||
}
|
Reference in New Issue
Block a user