From b3f8ab0beb4ffe088a60cf82c73512f7076603ab Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 11 Jul 2011 15:52:05 -0400 Subject: [PATCH] hand-coded fetch for Realtime_channel class --- plugins/Realtime/Realtime_channel.php | 40 ++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/plugins/Realtime/Realtime_channel.php b/plugins/Realtime/Realtime_channel.php index 23292cd12b..6c7b67ca97 100644 --- a/plugins/Realtime/Realtime_channel.php +++ b/plugins/Realtime/Realtime_channel.php @@ -157,10 +157,7 @@ class Realtime_channel extends Managed_DataObject static function getChannel($user_id, $action, $arg1, $arg2) { - $channel = self::pkeyGet(array('user_id' => $user_id, - 'action' => $action, - 'arg1' => $arg1, - 'arg2' => $arg2)); + $channel = self::fetchChannel($user_id, $action, $arg1, $arg2); // Ignore (and delete!) old channels @@ -207,4 +204,39 @@ class Realtime_channel extends Managed_DataObject return $channels; } + + static function fetchChannel($user_id, $action, $arg1, $arg2) + { + $channel = new Realtime_channel(); + + if (is_null($user_id)) { + $channel->whereAdd('user_id is null'); + } else { + $channel->user_id = $user_id; + } + + $channel->action = $action; + + if (is_null($arg1)) { + $channel->whereAdd('arg1 is null'); + } else { + $channel->arg1 = $arg1; + } + + if (is_null($arg2)) { + $channel->whereAdd('arg2 is null'); + } else { + $channel->arg2 = $arg2; + } + + if ($channel->find(true)) { + // Touch it! + $orig = clone($channel); + $channel->modified = common_sql_now(); + $channel->update($orig); + return $channel; + } else { + return null; + } + } } \ No newline at end of file -- 2.39.5