save
This commit is contained in:
parent
9b15ac9fd3
commit
27df1a73b5
28 changed files with 1695 additions and 247 deletions
|
@ -2,6 +2,8 @@
|
|||
namespace app\models;
|
||||
|
||||
use app\app;
|
||||
use swentel\nostr\Key\Key;
|
||||
|
||||
class users
|
||||
{
|
||||
public static function init()
|
||||
|
@ -14,15 +16,44 @@ class users
|
|||
opt_in_promotional BOOLEAN NOT NULL,
|
||||
verified BOOLEAN NOT NULL,
|
||||
dark_theme BOOLEAN NOT NULL,
|
||||
generated_base58 TEXT UNIQUE,
|
||||
nsec TEXT,
|
||||
npub TEXT NOT NULL,
|
||||
attached_lightning_address TEXT,
|
||||
replace_email_token TEXT,
|
||||
name TEXT,
|
||||
company_name TEXT,
|
||||
company_type TEXT,
|
||||
company_size TEXT,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)");
|
||||
app::$db->exec('CREATE INDEX IF NOT EXISTS idx_user_email ON users (email)');
|
||||
}
|
||||
|
||||
public static function updateReplaceEmailTokenById($user_id, $replace_token)
|
||||
{
|
||||
$query = "UPDATE users SET replace_email_token = :replace_token WHERE id = :user_id";
|
||||
$stmt = app::$db->prepare($query);
|
||||
$stmt->bindParam(':replace_token', $replace_token);
|
||||
$stmt->bindParam(':user_id', $user_id);
|
||||
$stmt->execute();
|
||||
}
|
||||
|
||||
public static function updateEmailById($user_id, $email)
|
||||
{
|
||||
$query = "UPDATE users SET email = :email WHERE id = :user_id";
|
||||
$stmt = app::$db->prepare($query);
|
||||
$stmt->bindParam(':email', $email);
|
||||
$stmt->bindParam(':user_id', $user_id);
|
||||
$stmt->execute();
|
||||
users::updateReplaceEmailTokenById($user_id, null);
|
||||
}
|
||||
|
||||
public static function getByReplaceEmailToken($token)
|
||||
{
|
||||
$query = "SELECT * FROM users WHERE replace_email_token = :token";
|
||||
$stmt = app::$db->prepare($query);
|
||||
$stmt->bindParam(':token', $token);
|
||||
$stmt->execute();
|
||||
return $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public static function updateProfileById($user_id, $post)
|
||||
|
@ -44,20 +75,29 @@ class users
|
|||
|
||||
public static function add($email, $ship_id, $bill_id, $opt_in_promotional, $verified, $dark_theme)
|
||||
{
|
||||
$key = new Key();
|
||||
$private_key = $key->generatePrivateKey();
|
||||
$public_key = $key->getPublicKey($private_key);
|
||||
$npub = $key->convertPublicKeyToBech32($public_key);
|
||||
$nsec = $key->convertPrivateKeyToBech32($private_key);
|
||||
$query = "INSERT INTO users (
|
||||
email,
|
||||
shipping_address_id,
|
||||
billing_address_id,
|
||||
opt_in_promotional,
|
||||
verified,
|
||||
dark_theme
|
||||
dark_theme,
|
||||
nsec,
|
||||
npub
|
||||
) VALUES (
|
||||
:email,
|
||||
:shipping_address_id,
|
||||
:billing_address_id,
|
||||
:opt_in_promotional,
|
||||
:verified,
|
||||
:dark_theme
|
||||
:dark_theme,
|
||||
:nsec,
|
||||
:npub
|
||||
)";
|
||||
$stmt = app::$db->prepare($query);
|
||||
$stmt->bindParam(':email', $email);
|
||||
|
@ -66,18 +106,35 @@ class users
|
|||
$stmt->bindParam(':opt_in_promotional', $opt_in_promotional);
|
||||
$stmt->bindParam(':verified', $verified);
|
||||
$stmt->bindParam(':dark_theme', $dark_theme);
|
||||
$stmt->bindParam(':nsec', $nsec);
|
||||
$stmt->bindParam(':npub', $npub);
|
||||
$stmt->execute();
|
||||
return app::$db->lastInsertId();
|
||||
|
||||
}
|
||||
|
||||
public static function verify($email)
|
||||
{
|
||||
app::$db->exec("UPDATE users SET verified = 1 WHERE email = '$email'");
|
||||
$query = "UPDATE users SET verified = 1 WHERE email = :email";
|
||||
$stmt = app::$db->prepare($query);
|
||||
$stmt->bindParam(':email', $email);
|
||||
$stmt->execute();
|
||||
}
|
||||
|
||||
public static function getById($id)
|
||||
{
|
||||
$query = "SELECT * FROM users WHERE id = :id";
|
||||
$stmt = app::$db->prepare($query);
|
||||
$stmt->bindParam(':id', $id);
|
||||
$stmt->execute();
|
||||
return $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public static function getByEmail($email)
|
||||
{
|
||||
return app::$db->query("SELECT * FROM users WHERE email = '$email'")->fetch(\PDO::FETCH_ASSOC);
|
||||
$query = "SELECT * FROM users WHERE email = :email";
|
||||
$stmt = app::$db->prepare($query);
|
||||
$stmt->bindParam(':email', $email);
|
||||
$stmt->execute();
|
||||
return $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue