Commit: Bulk unfinished work

This commit is contained in:
2026-01-22 17:39:04 +01:00
parent 6c46b4efcc
commit 3a9acc42a2
68 changed files with 5047 additions and 1064 deletions

78
repositories/session.go Normal file
View File

@@ -0,0 +1,78 @@
package repositories
import (
"context"
"fmt"
"log/slog"
"strconv"
"time"
"git.kocoder.xyz/kocoded/vt/fx/interfaces/stores"
glide "github.com/valkey-io/valkey-glide/go/v2"
)
type SessionRepository struct {
store *glide.Client
logger *slog.Logger
}
func NewSessionRepository(store *glide.Client, logger *slog.Logger) stores.SessionStore {
return &SessionRepository{store: store, logger: logger}
}
func (sr *SessionRepository) AddSession(s *stores.Session) {
// options.HSetExOptions{Expiry: options.NewExpiryIn(time.Hour * 2)}
ctx, cancel := context.WithTimeout(context.Background(), time.Second*2)
defer cancel()
_, err := sr.store.HSet(ctx, s.Token, s.Serialize())
if err != nil {
sr.logger.Error("Error adding session to store", "error", err)
panic(err)
}
_, err = sr.store.Expire(context.Background(), s.Token, time.Hour*2)
if err != nil {
sr.logger.Error("Error setting session expiration", "error", err)
panic(err)
}
}
func (sr *SessionRepository) GetSessionFromToken(token string) (*stores.Session, error) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*2)
defer cancel()
s, err := sr.store.HGetAll(ctx, token)
if err != nil {
sr.logger.Error("Error getting session from store", "error", err)
fmt.Println("PANIC - HGETALL")
panic(err)
}
_, err = sr.store.Expire(ctx, token, time.Hour*2)
if err != nil {
sr.logger.Error("Error setting session expiration", "error", err)
panic(err)
}
return (&stores.Session{}).Deserialize(token, s)
}
func (sr *SessionRepository) SetMandantInSession(token string, mandantId uint) error {
_, err := sr.store.HSet(context.Background(), token, map[string]string{"mandantid": strconv.Itoa(int(mandantId))})
if err != nil {
sr.logger.Error("Error setting mandant in session", "error", err)
return err
}
return nil
}
func (sr *SessionRepository) RemoveSession(token string) {
_, err := sr.store.HDel(context.Background(), token, []string{"userid", "mandantid"})
if err != nil {
sr.logger.Error("Error removing session from store", "error", err)
panic(err)
}
}