forked from jriou/coller
feat: Use snowflake identifiers
Fixes #29. Signed-off-by: Julien Riou <julien@riou.xyz>
This commit is contained in:
parent
d26879a333
commit
2c3ca08dbf
9 changed files with 24 additions and 39 deletions
|
@ -7,11 +7,13 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"git.riou.xyz/jriou/coller/internal"
|
||||
"github.com/bwmarrin/snowflake"
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
|
||||
"git.riou.xyz/jriou/coller/internal"
|
||||
)
|
||||
|
||||
type Database struct {
|
||||
|
@ -22,6 +24,7 @@ type Database struct {
|
|||
expiration int
|
||||
languages []string
|
||||
language string
|
||||
node *snowflake.Node
|
||||
}
|
||||
|
||||
var gconfig = &gorm.Config{
|
||||
|
@ -48,6 +51,11 @@ func NewDatabase(logger *slog.Logger, config *Config) (d *Database, err error) {
|
|||
|
||||
logger.Debug("connected to the database")
|
||||
|
||||
node, err := snowflake.NewNode(config.NodeID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
d = &Database{
|
||||
logger: l,
|
||||
db: db,
|
||||
|
@ -56,6 +64,7 @@ func NewDatabase(logger *slog.Logger, config *Config) (d *Database, err error) {
|
|||
expiration: config.Expiration,
|
||||
languages: internal.ToLowerStringSlice(config.Languages),
|
||||
language: strings.ToLower(config.Language),
|
||||
node: node,
|
||||
}
|
||||
|
||||
if err = d.UpdateSchema(); err != nil {
|
||||
|
@ -132,6 +141,7 @@ func (d *Database) Create(content []byte, password string, encrypted bool, expir
|
|||
}
|
||||
|
||||
note = &Note{
|
||||
ID: d.node.Generate().String(),
|
||||
Content: content,
|
||||
ExpiresAt: time.Now().Add(time.Duration(expiration) * time.Second),
|
||||
Encrypted: encrypted,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue