Overhaul [1/n]

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-01-29 02:42:28 +08:00
parent 989acd6ff1
commit c77241a883
2267 changed files with 7158 additions and 5583 deletions
+42 -7
View File
@@ -2,17 +2,24 @@ package session
import (
"encoding/json"
"errors"
"honoka-chan/internal/model/user"
"honoka-chan/internal/utils"
"honoka-chan/pkg/db"
"log"
"github.com/gin-gonic/gin"
"xorm.io/xorm"
)
type Session struct {
Ctx *gin.Context
Ctx *gin.Context
MainEng *xorm.Session
UserEng *xorm.Session
UserID int
UserPref user.UserPref
}
func New(ctx *gin.Context) *Session {
@@ -21,23 +28,39 @@ func New(ctx *gin.Context) *Session {
}
ss.MainEng = db.MainEng.NewSession()
ss.UserEng = db.UserEng.NewSession()
ss.UserEng.Begin()
userID := ctx.GetString("userid")
if userID != "" {
exist, err := ss.UserEng.Table("user_pref").Where("user_id = ?", userID).Get(&ss.UserPref)
if ss.CheckErr(err) {
return nil
}
if !exist {
ss.Abort(errors.New("user not exist!"))
return nil
}
ss.UserID = ss.UserPref.UserID
}
return ss
}
func Get(ctx *gin.Context) *Session {
return ctx.MustGet("session").(*Session)
}
func (ss *Session) Finalize() {
ss.MainEng.Close()
ss.UserEng.Commit()
if ss.CheckErr(ss.UserEng.Commit()) {
return
}
ss.UserEng.Close()
}
func (ss *Session) Abort(err error) {
ss.MainEng.Close()
ss.UserEng.Rollback()
ss.UserEng.Close()
@@ -47,16 +70,28 @@ func (ss *Session) Abort(err error) {
func (ss *Session) CheckErr(err error) bool {
if err != nil {
log.Println(err.Error())
ss.Abort(err)
return true
}
return false
}
func (ss *Session) GetDeviceID() string {
return ss.Ctx.Request.Header.Get("X-DEVICEID")
}
func (ss *Session) GetRandKey() []byte {
key, err := db.Ldb.Get([]byte(ss.GetDeviceID()))
if ss.CheckErr(err) {
return nil
}
return key
}
func (ss *Session) Respond(resp any) {
data, err := json.Marshal(resp)
if err != nil {
ss.Abort(err)
if ss.CheckErr(err) {
return
}