]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Group_member.php
Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
[quix0rs-gnu-social.git] / classes / Group_member.php
old mode 100755 (executable)
new mode 100644 (file)
index 32243fe..7b1760f
@@ -2,7 +2,6 @@
 /**
  * Table Definition for group_member
  */
-require_once 'classes/Memcached_DataObject.php';
 
 class Group_member extends Memcached_DataObject
 {
@@ -21,4 +20,46 @@ class Group_member extends Memcached_DataObject
 
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
+
+    function pkeyGet($kv)
+    {
+        return Memcached_DataObject::pkeyGet('Group_member', $kv);
+    }
+
+    static function join($group_id, $profile_id)
+    {
+        $member = new Group_member();
+
+        $member->group_id   = $group_id;
+        $member->profile_id = $profile_id;
+        $member->created    = common_sql_now();
+
+        $result = $member->insert();
+
+        if (!$result) {
+            common_log_db_error($member, 'INSERT', __FILE__);
+            throw new Exception(_("Group join failed."));
+        }
+
+        return true;
+    }
+
+    static function leave($group_id, $profile_id)
+    {
+        $member = Group_member::pkeyGet(array('group_id' => $group_id,
+                                              'profile_id' => $profile_id));
+
+        if (empty($member)) {
+            throw new Exception(_("Not part of group."));
+        }
+
+        $result = $member->delete();
+
+        if (!$result) {
+            common_log_db_error($member, 'INSERT', __FILE__);
+            throw new Exception(_("Group leave failed."));
+        }
+
+        return true;
+    }
 }