diff options
author | Zach Copley <zach@status.net> | 2010-02-17 01:11:14 -0800 |
---|---|---|
committer | Zach Copley <zach@status.net> | 2010-02-17 01:11:14 -0800 |
commit | ed46a38ecfea0a87e01aacfcde181087d5e0f19f (patch) | |
tree | 075f3217fac9f7c66c902b3db1d4e7411c05f353 /classes/Conversation.php | |
parent | a2f8c5da171d23790811677affd7ca5301a995a5 (diff) |
- conversation.uri needs to be nullable
- factory method for creating new local conversations
Diffstat (limited to 'classes/Conversation.php')
-rwxr-xr-x | classes/Conversation.php | 33 |
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; + } + } |