summaryrefslogtreecommitdiff
path: root/http/php
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-08-13 16:33:51 +0100
committerJoe Carstairs <me@joeac.net>2026-08-13 16:33:51 +0100
commit62e6bab910297aa15d76eb735ce3dd9b5417e26e (patch)
treea98b5fb2c2663e08c21475b1092ccec395e2d87e /http/php
parentf9272fdf3ea23070583c944b110a7b8f16c5a4ff (diff)
remove website/capsule content
Diffstat (limited to 'http/php')
-rw-r--r--http/php/config.php62
-rw-r--r--http/php/db.php205
-rw-r--r--http/php/mail.php35
3 files changed, 0 insertions, 302 deletions
diff --git a/http/php/config.php b/http/php/config.php
deleted file mode 100644
index cfe91d3..0000000
--- a/http/php/config.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php namespace JoeacNet\Http\Config;
-
-define("CONFIG", parse_ini_file(dirname(__FILE__, 2) . "/config.ini"));
-
-function maxDailyEmails(): int|null
-{
- $maxDailyEmails = CONFIG["MAX_DAILY_EMAILS"];
- if (!is_numeric($maxDailyEmails)) {
- return null;
- }
- return $maxDailyEmails;
-}
-
-function contactMailbox(): string|null
-{
- return (string) CONFIG["CONTACT_MAILBOX"];
-}
-
-function contactMailboxName(): string|null
-{
- return (string) CONFIG["CONTACT_MAILBOX_NAME"];
-}
-
-function localSmtpFrom(): string|null
-{
- return (string) CONFIG["LOCAL_SMTP_FROM"];
-}
-
-function localSmtpFromName(): string|null
-{
- return (string) CONFIG["LOCAL_SMTP_FROM_NAME"];
-}
-
-function localSmtpHost(): string|null
-{
- return (string) CONFIG["LOCAL_SMTP_HOST"];
-}
-
-function localSmtpPort(): string|null
-{
- return (string) CONFIG["LOCAL_SMTP_PORT"];
-}
-
-function localSmtpUser(): string|null
-{
- return (string) CONFIG["LOCAL_SMTP_USER"];
-}
-
-function localSmtpPass(): string|null
-{
- return (string) CONFIG["LOCAL_SMTP_PASSWORD"];
-}
-
-function dbScheme(): string|null
-{
- return (string) CONFIG["DB_SCHEME"];
-}
-
-function dbPath(): string|null
-{
- return (string) CONFIG["DB_PATH"];
-}
diff --git a/http/php/db.php b/http/php/db.php
deleted file mode 100644
index a60d6c4..0000000
--- a/http/php/db.php
+++ /dev/null
@@ -1,205 +0,0 @@
-<?php namespace JoeacNet\Http\Db;
-
-use JoeacNet\Http\Config;
-
-use PDO;
-
-require_once __DIR__ . "/config.php";
-
-function connectDb(): PDO
-{
- $pdo = new PDO(Config\dbScheme() . ":" . Config\dbPath());
- $pdo = createTables($pdo);
- return $pdo;
-}
-
-function createTables(PDO $pdo): PDO
-{
- $pdo->exec(
- <<<SQL
- CREATE TABLE IF NOT EXISTS otp (
- userId TEXT NOT NULL,
- value TEXT NOT NULL,
- createdAtUnixSecs INTEGER NOT NULL,
- validUntilUnixSecs INTEGER NOT NULL
- );
- SQL
- ,
- );
-
- $pdo->exec(
- <<<SQL
- CREATE TABLE IF NOT EXISTS send_email_token (
- userId TEXT NOT NULL,
- value TEXT NOT NULL,
- createdAtUnixSecs INTEGER NOT NULL,
- validUntilUnixSecs INTEGER NOT NULL
- );
- SQL
- ,
- );
-
- $pdo->exec(
- <<<SQL
- CREATE TABLE IF NOT EXISTS sent_emails (
- messageId TEXT NOT NULL,
- sentAtUnixSecs INTEGER NOT NULL
- );
- SQL
- ,
- );
-
- return $pdo;
-}
-
-function countEmailsSentLast24Hours(PDO $db): int
-{
- $twentyFourHoursAgo = time() - 24 * 60 * 60;
- return (int) $db
- ->query(
- <<<SQL
- SELECT COUNT(*) as count
- FROM sent_emails
- WHERE sentAtUnixSecs >= $twentyFourHoursAgo;
- SQL
- ,
- )
- ->fetchColumn(0);
-}
-
-function insertSendEmailToken(PDO $db, string $userId, string $token)
-{
- $createdAtUnixSecs = time();
- $validUntilUnixSecs = $createdAtUnixSecs + 60;
- $db
- ->prepare(
- <<<SQL
- INSERT
- INTO send_email_token
- (userId, value, createdAtUnixSecs, validUntilUnixSecs)
- VALUES
- (:userId, :token, :createdAtUnixSecs, :validUntilUnixSecs);
- SQL
- ,
- )
- ->execute([
- "userId" => $userId,
- "token" => $token,
- "createdAtUnixSecs" => $createdAtUnixSecs,
- "validUntilUnixSecs" => $validUntilUnixSecs,
- ]);
-}
-
-function isTokenValid(PDO $db, string $userId, string $token): int
-{
- $now = time();
- $stmt = $db->prepare(
- <<<SQL
- SELECT COUNT(*) AS count
- FROM send_email_token
- WHERE userId = :userId
- AND value = :token
- AND validUntilUnixSecs >= :validUntilUnixSecs;
- SQL
- ,
- );
- $stmt->execute([
- "userId" => $userId,
- "token" => $token,
- "validUntilUnixSecs" => $now,
- ]);
- $validTokenCount = (int) $stmt->fetchColumn(0);
- return $validTokenCount > 0;
-}
-
-function deleteAllTokensForUser(PDO $db, string $userId)
-{
- $db
- ->prepare(
- <<<SQL
- DELETE
- FROM send_email_token
- WHERE userId = :userId;
- SQL
- ,
- )
- ->execute(["userId" => $userId]);
-}
-
-function deleteAllOtpsForUser(PDO $db, string $userId)
-{
- $db
- ->prepare(
- <<<SQL
- DELETE
- FROM otp
- WHERE userId = :userId;
- SQL
- ,
- )
- ->execute(["userId" => $userId]);
-}
-
-function recordSentEmail(PDO $db, string $messageId)
-{
- $now = time();
- $stmt = $db->prepare(
- <<<SQL
- INSERT
- INTO sent_emails
- (messageId, sentAtUnixSecs)
- VALUES
- (:messageId, :now);
- SQL
- ,
- );
- $stmt->execute(["messageId" => $messageId, "now" => $now]);
-}
-
-function insertOtp(PDO $db, string $userId, string $otp)
-{
- $createdAtUnixSecs = time();
- $validUntilUnixSecs = $createdAtUnixSecs + 60 * 5;
- $db
- ->prepare(
- <<<SQL
- INSERT
- INTO otp
- (userId, value, createdAtUnixSecs, validUntilUnixSecs)
- VALUES
- (:userId, :otp, :createdAtUnixSecs, :validUntilUnixSecs)
- SQL
- ,
- )
- ->execute([
- "userId" => $userId,
- "otp" => $otp,
- "createdAtUnixSecs" => $createdAtUnixSecs,
- "validUntilUnixSecs" => $validUntilUnixSecs,
- ]);
-}
-
-function isOtpCorrect(
- PDO $db,
- string $userId,
- string $guess,
- int $leniencySecs,
-): bool {
- $stmt = $db->prepare(
- <<<SQL
- SELECT
- COUNT(*) as count
- FROM otp
- WHERE userId = :userId
- AND value = :guess
- AND validUntilUnixSecs >= :validUntilUnixSecs
- SQL
- ,
- );
- $stmt->execute([
- "userId" => $userId,
- "guess" => $guess,
- "validUntilUnixSecs" => time() - $leniencySecs,
- ]);
- return $stmt->fetchColumn(0);
-}
diff --git a/http/php/mail.php b/http/php/mail.php
deleted file mode 100644
index d9c4125..0000000
--- a/http/php/mail.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php namespace JoeacNet\Http\Mail;
-
-use PHPMailer\PHPMailer\PHPMailer;
-
-use JoeacNet\Http\Config;
-
-require_once __DIR__ . "/../vendor/autoload.php";
-
-function sendEmail(
- string $toEmail,
- string $toName,
- string $subject,
- string $body,
- string $replyToEmail = null,
- string $replyToName = null,
-): string {
- $mail = new PHPMailer();
- $mail->isSMTP();
- $mail->Host = Config\localSmtpHost();
- $mail->Port = Config\localSmtpPort();
- $mail->SMTPAuth = true;
- $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
- $mail->Username = Config\localSmtpUser();
- $mail->Password = Config\localSmtpPass();
- $mail->setFrom(Config\localSmtpFrom(), Config\localSmtpFromName());
- if (!is_null($replyToEmail)) {
- $mail->addReplyTo($replyToEmail, $replyToName);
- }
- $mail->addAddress($toEmail, $toName);
- $mail->isHTML(false);
- $mail->Subject = "joeac.net: $subject";
- $mail->Body = "$body";
- $mail->send();
- return $mail->getLastMessageID();
-}