]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Group_member.php
do our own repeating so we can pass in a uri
[quix0rs-gnu-social.git] / classes / Group_member.php
index 3c23a991f05f272e5f610d3bf62b724e83a343b8..2239461beb5e08b3b4253e0f76b3c472159d8b73 100644 (file)
@@ -21,8 +21,48 @@ class Group_member extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
-    function &pkeyGet($kv)
+    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__);
+            // TRANS: Exception thrown when joining a group fails.
+            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)) {
+            // TRANS: Exception thrown when trying to leave a group the user is not a member of.
+            throw new Exception(_("Not part of group."));
+        }
+
+        $result = $member->delete();
+
+        if (!$result) {
+            common_log_db_error($member, 'INSERT', __FILE__);
+            // TRANS: Exception thrown when trying to leave a group fails.
+            throw new Exception(_("Group leave failed."));
+        }
+
+        return true;
+    }
 }