Files
sonr/internal/gateway/context/store.go
T

59 lines
1.6 KiB
Go
Raw Normal View History

package context
import (
"fmt"
"github.com/labstack/echo/v4"
"github.com/onsonr/sonr/internal/gateway/models"
)
func InsertCredential(c echo.Context, handle string, cred *models.CredentialDescriptor) error {
sess, err := Get(c)
if err != nil {
return err
}
return sess.db.Save(cred.ToDBModel(handle, c.Request().Host)).Error
}
func InsertProfile(c echo.Context) error {
sess, err := Get(c)
if err != nil {
return err
}
handle := c.FormValue("handle")
firstName := c.FormValue("first_name")
lastName := c.FormValue("last_name")
return sess.db.Save(&models.User{
Handle: handle,
Name: fmt.Sprintf("%s %s", firstName, lastName),
}).Error
}
// ╭───────────────────────────────────────────────────────╮
// │ DB Getter Functions │
// ╰───────────────────────────────────────────────────────╯
// SessionID returns the session ID
func SessionID(c echo.Context) (string, error) {
sess, err := Get(c)
if err != nil {
return "", err
}
return sess.Session().ID, 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(&models.User{}).Where("handle = ?", handle).Count(&count).Error; err != nil {
return false, err
}
return count > 0, nil
}