Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alist-org
GitHub Repository: alist-org/alist
Path: blob/main/internal/db/sshkey.go
1560 views
1
package db
2
3
import (
4
"github.com/alist-org/alist/v3/internal/model"
5
"github.com/pkg/errors"
6
)
7
8
func GetSSHPublicKeyByUserId(userId uint, pageIndex, pageSize int) (keys []model.SSHPublicKey, count int64, err error) {
9
keyDB := db.Model(&model.SSHPublicKey{})
10
query := model.SSHPublicKey{UserId: userId}
11
if err := keyDB.Where(query).Count(&count).Error; err != nil {
12
return nil, 0, errors.Wrapf(err, "failed get user's keys count")
13
}
14
if err := keyDB.Where(query).Order(columnName("id")).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&keys).Error; err != nil {
15
return nil, 0, errors.Wrapf(err, "failed get find user's keys")
16
}
17
return keys, count, nil
18
}
19
20
func GetSSHPublicKeyById(id uint) (*model.SSHPublicKey, error) {
21
var k model.SSHPublicKey
22
if err := db.First(&k, id).Error; err != nil {
23
return nil, errors.Wrapf(err, "failed get old key")
24
}
25
return &k, nil
26
}
27
28
func GetSSHPublicKeyByUserTitle(userId uint, title string) (*model.SSHPublicKey, error) {
29
key := model.SSHPublicKey{UserId: userId, Title: title}
30
if err := db.Where(key).First(&key).Error; err != nil {
31
return nil, errors.Wrapf(err, "failed find key with title of user")
32
}
33
return &key, nil
34
}
35
36
func CreateSSHPublicKey(k *model.SSHPublicKey) error {
37
return errors.WithStack(db.Create(k).Error)
38
}
39
40
func UpdateSSHPublicKey(k *model.SSHPublicKey) error {
41
return errors.WithStack(db.Save(k).Error)
42
}
43
44
func GetSSHPublicKeys(pageIndex, pageSize int) (keys []model.SSHPublicKey, count int64, err error) {
45
keyDB := db.Model(&model.SSHPublicKey{})
46
if err := keyDB.Count(&count).Error; err != nil {
47
return nil, 0, errors.Wrapf(err, "failed get keys count")
48
}
49
if err := keyDB.Order(columnName("id")).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&keys).Error; err != nil {
50
return nil, 0, errors.Wrapf(err, "failed get find keys")
51
}
52
return keys, count, nil
53
}
54
55
func DeleteSSHPublicKeyById(id uint) error {
56
return errors.WithStack(db.Delete(&model.SSHPublicKey{}, id).Error)
57
}
58
59