add vendoring
This commit is contained in:
55
vendor/gitlab.com/etke.cc/linkpearl/store/store.go
generated
vendored
Normal file
55
vendor/gitlab.com/etke.cc/linkpearl/store/store.go
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
// Package store implements crypto.Store, crypto.StateStore, mautrix.Storer and some additional "glue methods"
|
||||
package store
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
"maunium.net/go/mautrix/crypto"
|
||||
"maunium.net/go/mautrix/id"
|
||||
"maunium.net/go/mautrix/util/dbutil"
|
||||
|
||||
"gitlab.com/etke.cc/linkpearl/config"
|
||||
)
|
||||
|
||||
// Store for the matrix
|
||||
type Store struct {
|
||||
db *sql.DB
|
||||
dialect string
|
||||
log config.Logger
|
||||
encryption bool
|
||||
s *crypto.SQLCryptoStore
|
||||
}
|
||||
|
||||
// New store
|
||||
func New(db *sql.DB, dialect string, log config.Logger) *Store {
|
||||
return &Store{
|
||||
db: db,
|
||||
log: log,
|
||||
dialect: dialect,
|
||||
}
|
||||
}
|
||||
|
||||
// WithCrypto adds crypto store support
|
||||
func (s *Store) WithCrypto(userID id.UserID, deviceID id.DeviceID, logger config.Logger) error {
|
||||
s.log.Debug("crypto store enabled")
|
||||
s.encryption = true
|
||||
db, err := dbutil.NewWithDB(s.db, s.dialect)
|
||||
if err != nil {
|
||||
logger.Error("cannot init database: %v", err)
|
||||
return err
|
||||
}
|
||||
s.s = crypto.NewSQLCryptoStore(
|
||||
db,
|
||||
dbutil.NoopLogger,
|
||||
userID.String(),
|
||||
deviceID,
|
||||
[]byte(userID),
|
||||
)
|
||||
|
||||
return s.s.Upgrade()
|
||||
}
|
||||
|
||||
// GetDialect returns database dialect
|
||||
func (s *Store) GetDialect() string {
|
||||
return s.dialect
|
||||
}
|
||||
Reference in New Issue
Block a user