mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
169 lines
4.4 KiB
Go
169 lines
4.4 KiB
Go
package context
|
|
|
|
import (
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/onsonr/sonr/pkg/database/sessions"
|
|
)
|
|
|
|
// ╭───────────────────────────────────────────────────────╮
|
|
// │ DB Setter Functions │
|
|
// ╰───────────────────────────────────────────────────────╯
|
|
|
|
// SetUserHandle sets the user handle in the session
|
|
func SetUserHandle(c echo.Context, handle string) error {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
sess.Session().UserHandle = handle
|
|
return sess.db.Save(sess.Session()).Error
|
|
}
|
|
|
|
// SetFirstName sets the first name in the session
|
|
func SetFirstName(c echo.Context, name string) error {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
sess.Session().FirstName = name
|
|
return sess.db.Save(sess.Session()).Error
|
|
}
|
|
|
|
// SetLastInitial sets the last initial in the session
|
|
func SetLastInitial(c echo.Context, initial string) error {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
sess.Session().LastInitial = initial
|
|
return sess.db.Save(sess.Session()).Error
|
|
}
|
|
|
|
// SetVaultAddress sets the vault address in the session
|
|
func SetVaultAddress(c echo.Context, address string) error {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
sess.Session().VaultAddress = address
|
|
return sess.db.Save(sess.Session()).Error
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────╮
|
|
// │ DB Getter Functions │
|
|
// ╰───────────────────────────────────────────────────────╯
|
|
|
|
// GetID returns the session ID
|
|
func GetID(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().ID, nil
|
|
}
|
|
|
|
// GetBrowserName returns the browser name
|
|
func GetBrowserName(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().BrowserName, nil
|
|
}
|
|
|
|
// GetBrowserVersion returns the browser version
|
|
func GetBrowserVersion(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().BrowserVersion, nil
|
|
}
|
|
|
|
// GetUserArchitecture returns the user architecture
|
|
func GetUserArchitecture(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().UserArchitecture, nil
|
|
}
|
|
|
|
// GetPlatform returns the platform
|
|
func GetPlatform(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().Platform, nil
|
|
}
|
|
|
|
// GetPlatformVersion returns the platform version
|
|
func GetPlatformVersion(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().PlatformVersion, nil
|
|
}
|
|
|
|
// GetDeviceModel returns the device model
|
|
func GetDeviceModel(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().DeviceModel, nil
|
|
}
|
|
|
|
// GetUserHandle returns the user handle
|
|
func GetUserHandle(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().UserHandle, nil
|
|
}
|
|
|
|
// GetFirstName returns the first name
|
|
func GetFirstName(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().FirstName, nil
|
|
}
|
|
|
|
// GetLastInitial returns the last initial
|
|
func GetLastInitial(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().LastInitial, nil
|
|
}
|
|
|
|
// GetVaultAddress returns the vault address
|
|
func GetVaultAddress(c echo.Context) (string, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return sess.Session().VaultAddress, nil
|
|
}
|
|
|
|
// HandleExists checks if a handle already exists in any session
|
|
func HandleExists(c echo.Context, handle string) (bool, error) {
|
|
sess, err := Get(c)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
var count int64
|
|
if err := sess.db.Model(&sessions.Session{}).Where("user_handle = ?", handle).Count(&count).Error; err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return count > 0, nil
|
|
}
|