/
db_onetime_prekeys.go
55 lines (46 loc) · 1.54 KB
/
db_onetime_prekeys.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package user
import (
"github.com/TangSengDaoDao/TangSengDaoDaoServerLib/config"
"github.com/TangSengDaoDao/TangSengDaoDaoServerLib/pkg/db"
"github.com/TangSengDaoDao/TangSengDaoDaoServerLib/pkg/util"
"github.com/gocraft/dbr/v2"
)
type onetimePrekeysDB struct {
session *dbr.Session
ctx *config.Context
}
func newOnetimePrekeysDB(ctx *config.Context) *onetimePrekeysDB {
return &onetimePrekeysDB{
session: ctx.DB(),
ctx: ctx,
}
}
func (o *onetimePrekeysDB) insertTx(m *onetimePrekeysModel, tx *dbr.Tx) error {
_, err := tx.InsertInto("signal_onetime_prekeys").Columns(util.AttrToUnderscore(m)...).Record(m).Exec()
return err
}
func (o *onetimePrekeysDB) delete(uid string, keyID int) error {
_, err := o.session.DeleteFrom("signal_onetime_prekeys").Where("uid=? and key_id=?", uid, keyID).Exec()
return err
}
func (o *onetimePrekeysDB) deleteWithUID(uid string) error {
_, err := o.session.DeleteFrom("signal_onetime_prekeys").Where("uid=?", uid).Exec()
return err
}
// 查询用户最小的onetimePreKey
func (o *onetimePrekeysDB) queryMinWithUID(uid string) (*onetimePrekeysModel, error) {
var m *onetimePrekeysModel
_, err := o.session.Select("*").From("signal_onetime_prekeys").Where("uid=?", uid).OrderAsc("key_id").Limit(1).Load(&m)
return m, err
}
func (o *onetimePrekeysDB) queryCount(uid string) (int, error) {
var cn int
err := o.session.Select("count(*)").From("signal_onetime_prekeys").Where("uid=?", uid).LoadOne(&cn)
return cn, err
}
type onetimePrekeysModel struct {
UID string
KeyID int
Pubkey string
db.BaseModel
}