summaryrefslogtreecommitdiff
path: root/classes/Conversation.php
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-02-17 01:11:14 -0800
committerZach Copley <zach@status.net>2010-02-17 01:11:14 -0800
commited46a38ecfea0a87e01aacfcde181087d5e0f19f (patch)
tree075f3217fac9f7c66c902b3db1d4e7411c05f353 /classes/Conversation.php
parenta2f8c5da171d23790811677affd7ca5301a995a5 (diff)
- conversation.uri needs to be nullable
- factory method for creating new local conversations
Diffstat (limited to 'classes/Conversation.php')
-rwxr-xr-xclasses/Conversation.php33
1 files changed, 31 insertions, 2 deletions
diff --git a/classes/Conversation.php b/classes/Conversation.php
index 929b06c14..ea8bd87b5 100755
--- a/classes/Conversation.php
+++ b/classes/Conversation.php
@@ -36,14 +36,43 @@ class Conversation extends Memcached_DataObject
public $__table = 'conversation'; // table name
public $id; // int(4) primary_key not_null
- public $uri; // varchar(225) unique_key not_null
+ public $uri; // varchar(225) unique_key
public $created; // datetime not_null
public $modified; // timestamp not_null default_CURRENT_TIMESTAMP
/* Static get */
- function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Session',$k,$v); }
+ function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('conversation',$k,$v); }
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
+
+ /**
+ * Factory method for creating a new conversation
+ *
+ * @return Conversation the new conversation DO
+ */
+ static function create()
+ {
+ $conv = new Conversation();
+ $conv->created = common_sql_now();
+ $id = $conv->insert();
+
+ if (empty($id)) {
+ common_log_db_error($conv, 'INSERT', __FILE__);
+ return null;
+ }
+
+ $orig = clone($conv);
+ $orig->uri = common_local_url('conversation', array('id' => $id));
+ $result = $orig->update($conv);
+
+ if (empty($result)) {
+ common_log_db_error($conv, 'UPDATE', __FILE__);
+ return null;
+ }
+
+ return $conv;
+ }
+
}