diff --git a/app/Enums/ModelEventEnum.php b/app/Enums/ModelEventEnum.php index d164aa77..7d8eac93 100644 --- a/app/Enums/ModelEventEnum.php +++ b/app/Enums/ModelEventEnum.php @@ -14,6 +14,7 @@ use App\Events\HitAndRunUpdated; use App\Events\MessageCreated; use App\Events\NewsCreated; use App\Events\SnatchedUpdated; +use App\Events\StaffMessageCreated; use App\Events\TorrentCreated; use App\Events\TorrentDeleted; use App\Events\TorrentUpdated; @@ -28,6 +29,7 @@ use App\Models\HitAndRun; use App\Models\Message; use App\Models\News; use App\Models\Snatch; +use App\Models\StaffMessage; use App\Models\Torrent; use App\Models\User; @@ -59,6 +61,8 @@ final class ModelEventEnum { const SNATCHED_UPDATED = 'snatched_updated'; const MESSAGE_CREATED = 'message_created'; + const STAFF_MESSAGE_CREATED = 'staff_message_created'; + public static array $eventMaps = [ self::TORRENT_CREATED => ['event' => TorrentCreated::class, 'model' => Torrent::class], self::TORRENT_UPDATED => ['event' => TorrentUpdated::class, 'model' => Torrent::class], @@ -87,5 +91,7 @@ final class ModelEventEnum { self::AGENT_DENY_CREATED => ['event' => AgentDenyCreated::class, 'model' => AgentDeny::class], self::AGENT_DENY_UPDATED => ['event' => AgentDenyUpdated::class, 'model' => AgentDeny::class], self::AGENT_DENY_DELETED => ['event' => AgentDenyDeleted::class, 'model' => AgentDeny::class], + + self::STAFF_MESSAGE_CREATED => ['event' => StaffMessageCreated::class, 'model' => StaffMessage::class], ]; } diff --git a/app/Events/StaffMessageCreated.php b/app/Events/StaffMessageCreated.php new file mode 100644 index 00000000..ea06c5a7 --- /dev/null +++ b/app/Events/StaffMessageCreated.php @@ -0,0 +1,39 @@ +model = $model; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Models/StaffMessage.php b/app/Models/StaffMessage.php index aab5c8a7..9102b3f1 100644 --- a/app/Models/StaffMessage.php +++ b/app/Models/StaffMessage.php @@ -2,8 +2,7 @@ namespace App\Models; -use App\Repositories\ToolRepository; -use Google\Service\Testing\ToolResultsExecution; +use App\Enums\ModelEventEnum; class StaffMessage extends NexusModel { @@ -27,4 +26,16 @@ class StaffMessage extends NexusModel return $this->belongsTo(User::class, 'answeredby'); } + public static function add(int $sender, string $subject, string $msg) + { + $record = self::query()->create([ + 'sender' => $sender, + 'subject' => $subject, + 'msg' => $msg, + 'added' => now(), + ]); + fire_event(ModelEventEnum::STAFF_MESSAGE_CREATED, $record); + return $record; + } + } diff --git a/include/constants.php b/include/constants.php index b15cb95d..74c322dc 100644 --- a/include/constants.php +++ b/include/constants.php @@ -1,6 +1,6 @@ delete_value('staff_message_count'); diff --git a/public/takemessage.php b/public/takemessage.php index 396b41a2..04320221 100644 --- a/public/takemessage.php +++ b/public/takemessage.php @@ -60,7 +60,7 @@ if ($_SERVER["REQUEST_METHOD"] != "POST") $save = ($save == 'yes') ? "yes" : "no"; // End of Change - $res = sql_query("SELECT id,username,parked,email,acceptpms, notifs, UNIX_TIMESTAMP(last_access) as la FROM users WHERE id=".sqlesc($receiver)) or sqlerr(__FILE__, __LINE__); + $res = sql_query("SELECT id,username,parked,email,acceptpms, notifs, ".\Nexus\Database\NexusDB::unixTimestampField("last_access")." as la FROM users WHERE id=".$receiver) or sqlerr(__FILE__, __LINE__); $user = mysql_fetch_assoc($res); if (!$user) stderr($lang_takemessage['std_error'], $lang_takemessage['std_user_not_exist']); @@ -88,7 +88,7 @@ if ($_SERVER["REQUEST_METHOD"] != "POST") $subject = trim($_POST['subject']); - \App\Models\Message::add([ + $messageRecord = \App\Models\Message::add([ 'sender' => $CURUSER["id"], 'receiver' => $receiver, 'msg' => $msg, @@ -100,7 +100,7 @@ if ($_SERVER["REQUEST_METHOD"] != "POST") $Cache->delete_value('user_'.$CURUSER["id"].'_outbox_count'); - $msgid=mysql_insert_id(); + $msgid=$messageRecord->id; $date=date("Y-m-d H:i:s"); // Update Last PM sent... sql_query("UPDATE users SET last_pm = NOW() WHERE id = ".sqlesc($CURUSER['id'])) or sqlerr(__FILE__, __LINE__);