- Add user_greet model and startup table sync - Implement /greet/user and /greet/delete handlers - Implement noticeFriendGreeting inbox and noticeUserGreetingHistory outbox - Return peer profile and center unit info for greeting notices - Update login topInfo friend greet counters from unread inbox messages Signed-off-by: Sean Du <do4suki@gmail.com>
41 lines
845 B
Go
41 lines
845 B
Go
package greet
|
|
|
|
import (
|
|
"errors"
|
|
usermodel "honoka-chan/internal/model/user"
|
|
"honoka-chan/internal/session"
|
|
"strconv"
|
|
)
|
|
|
|
func resolveGreetingUserID(ss *session.Session, requestedUserID int) (int, error) {
|
|
if requestedUserID <= 0 {
|
|
return 0, errors.New("invalid user_id")
|
|
}
|
|
|
|
pref := usermodel.UserPref{}
|
|
has, err := ss.UserEng.Table(new(usermodel.UserPref)).
|
|
Where("invite_code = ?", strconv.Itoa(requestedUserID)).
|
|
Cols("user_id").
|
|
Get(&pref)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
if has && pref.UserID > 0 {
|
|
return pref.UserID, nil
|
|
}
|
|
|
|
user := usermodel.Users{}
|
|
has, err = ss.UserEng.Table(new(usermodel.Users)).
|
|
Where("user_id = ?", requestedUserID).
|
|
Cols("user_id").
|
|
Get(&user)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
if !has || user.UserID <= 0 {
|
|
return 0, errors.New("user not found")
|
|
}
|
|
|
|
return user.UserID, nil
|
|
}
|