Skip to content

Commit

Permalink
Rework bolt interface
Browse files Browse the repository at this point in the history
  • Loading branch information
glotchimo committed Jul 14, 2023
1 parent 9808849 commit 42bdbd3
Showing 1 changed file with 8 additions and 16 deletions.
24 changes: 8 additions & 16 deletions points.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,24 @@ import (
"go.etcd.io/bbolt"
)

func reward(id string) (int, error) {
var points int
func setPoints(id string, amount int) error {
if err := POINTS_DB.Update(func(tx *bbolt.Tx) error {
b, err := tx.CreateBucketIfNotExists([]byte("points"))
if err != nil {
return fmt.Errorf("error creating bucket: %w", err)
}

var oldPoints uint64
oldPointsRaw := b.Get([]byte(id))
if oldPointsRaw != nil {
oldPoints = binary.BigEndian.Uint64(b.Get([]byte(id)))
points = int(oldPoints) + REWARD
}

newPoints := binary.BigEndian.AppendUint64([]byte{}, oldPoints+uint64(REWARD))
if err := b.Put([]byte(id), newPoints); err != nil {
return fmt.Errorf("error putting new score: %w", err)
n := binary.BigEndian.AppendUint64([]byte{}, uint64(amount))
if err := b.Put([]byte(id), n); err != nil {
return fmt.Errorf("error setting points: %w", err)
}

return nil
}); err != nil {
return points, fmt.Errorf("error in transaction: %w", err)
return fmt.Errorf("error in transaction: %w", err)
}

return points, nil
return nil
}

func getPoints(id string) (int, error) {
Expand All @@ -43,8 +35,8 @@ func getPoints(id string) (int, error) {
return fmt.Errorf("error creating bucket: %w", err)
}

oldScoreRaw := b.Get([]byte(id))
if oldScoreRaw != nil {
n := b.Get([]byte(id))
if n != nil {
points = int(binary.BigEndian.Uint64(b.Get([]byte(id))))
}

Expand Down

0 comments on commit 42bdbd3

Please sign in to comment.