mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-04 02:11:40 +00:00
59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
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
|
||
|
|
}
|