package user import ( "context" "errors" "git.tijl.dev/tijl/tijl.dev/internal/queries" "git.tijl.dev/tijl/tijl.dev/internal/utils" "git.tijl.dev/tijl/tijl.dev/modules/db" "github.com/gofiber/fiber/v2" ) func NewSession(uid string, c *fiber.Ctx) (string, error) { createSessionParams := queries.CreateSessionParams{ Uid: uid, Token: utils.RandString(64), } err := db.Queries.CreateSession(context.TODO(), createSessionParams) if err != nil { return "", err } c.Cookie(&fiber.Cookie{ Name: "session", Value: createSessionParams.Token, Secure: true, }) _, err = db.Queries.QuickUpdateSession(context.TODO(), queries.QuickUpdateSessionParams{ Token: createSessionParams.Token, IpAddress: c.IP(), Agent: string(c.Context().UserAgent()), }) if err != nil { return "", err } return createSessionParams.Token, nil } func GetSession(c *fiber.Ctx) (string, error) { if c.Cookies("session") == "" { return "", errors.New("no cookie found") } uid, err := db.Queries.QuickUpdateSession(context.TODO(), queries.QuickUpdateSessionParams{ Token: c.Cookies("session"), IpAddress: c.IP(), Agent: string(c.Context().UserAgent()), }) if err != nil { return uid, err } //session, err := db.Queries.GetSession(context.TODO(), c.Cookies("session")) //if err != nil { // return session, err //} return uid, nil }