summaryrefslogtreecommitdiff
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
parenta2f8c5da171d23790811677affd7ca5301a995a5 (diff)
- conversation.uri needs to be nullable
- factory method for creating new local conversations
-rwxr-xr-xclasses/Conversation.php33
-rw-r--r--classes/statusnet.ini3
-rw-r--r--db/statusnet.sql2
3 files changed, 34 insertions, 4 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;
+ }
+
}
diff --git a/classes/statusnet.ini b/classes/statusnet.ini
index 7a9ae07e7..81c1b68b2 100644
--- a/classes/statusnet.ini
+++ b/classes/statusnet.ini
@@ -49,12 +49,13 @@ consumer_key = K
[conversation]
id = 129
-uri = 130
+uri = 2
created = 142
modified = 384
[conversation__keys]
id = N
+uri = U
[deleted_notice]
id = 129
diff --git a/db/statusnet.sql b/db/statusnet.sql
index 74e5b6954..97117c80a 100644
--- a/db/statusnet.sql
+++ b/db/statusnet.sql
@@ -636,7 +636,7 @@ create table inbox (
create table conversation (
id integer auto_increment primary key comment 'unique identifier',
- uri varchar(225) not null unique comment 'URI of the conversation',
+ uri varchar(225) unique comment 'URI of the conversation',
created datetime not null comment 'date this record was created',
modified timestamp comment 'date this record was modified'
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;