qq_bot/auth/service.go

39 lines
764 B
Go

package auth
import (
"database/sql"
"git.lxtend.com/qqbot/constants"
"git.lxtend.com/qqbot/sqlite3"
)
func getAuth(qqID int64) (auth Auth, err error) {
tx, err := sqlite3.GetTran()
if err != nil {
return Auth{}, err
}
defer tx.Rollback()
err = tx.Get(&auth, "SELECT * FROM auth WHERE qqid = ?", qqID)
if err == sql.ErrNoRows {
_, err = tx.Exec("INSERT INTO auth(qqid, role) VALUES(?, ?)", qqID, constants.LEVEL_USER)
}
if err != nil {
return Auth{}, err
}
return auth, nil
}
func setAuth(auth Auth) error {
tx, err := sqlite3.GetTran()
if err != nil {
return err
}
defer tx.Rollback()
_, err = tx.Exec("UPDATE auth SET role = ? WHERE qqid = ?", auth.Role, auth.Qqid)
if err != nil {
return err
}
err = tx.Commit()
return err
}