Implemented join and leave groups api methods
This commit is contained in:
		| @@ -293,6 +293,105 @@ require_once INSTALLDIR.'/lib/twitterapi.php'; | ||||
|          } | ||||
|      } | ||||
|  | ||||
|      function join($args, $apidata) | ||||
|      { | ||||
|          parent::handle($args); | ||||
|  | ||||
|          common_debug("in groups api action"); | ||||
|  | ||||
|          $this->auth_user = $apidata['user']; | ||||
|          $group = $this->get_group($apidata['api_arg'], $apidata); | ||||
|  | ||||
|          if (empty($group)) { | ||||
|              $this->clientError('Not Found', 404, $apidata['content-type']); | ||||
|              return false; | ||||
|          } | ||||
|  | ||||
|          if($this->auth_user->isMember($group)){ | ||||
|             $this->clientError(_('You are already a member of that group'), $code = 403); | ||||
|             return false; | ||||
|          } | ||||
|  | ||||
|          if (Group_block::isBlocked($group, $this->auth_user->getProfile())) { | ||||
|             $this->clientError(_('You have been blocked from that group by the admin.'), 403); | ||||
|             return false; | ||||
|          } | ||||
|  | ||||
|          $member = new Group_member(); | ||||
|  | ||||
|          $member->group_id   = $group->id; | ||||
|          $member->profile_id = $this->auth_user->id; | ||||
|          $member->created    = common_sql_now(); | ||||
|  | ||||
|          $result = $member->insert(); | ||||
|  | ||||
|          if (!$result) { | ||||
|             common_log_db_error($member, 'INSERT', __FILE__); | ||||
|             $this->serverError(sprintf(_('Could not join user %s to group %s'), | ||||
|                                        $this->auth_user->nickname, $group->nickname)); | ||||
|          } | ||||
|  | ||||
|          switch($apidata['content-type']) { | ||||
|           case 'xml': | ||||
|              $this->show_single_xml_group($group); | ||||
|              break; | ||||
|           case 'json': | ||||
|              $this->show_single_json_group($group); | ||||
|              break; | ||||
|           default: | ||||
|              $this->clientError(_('API method not found!'), $code = 404); | ||||
|          } | ||||
|      } | ||||
|  | ||||
|      function leave($args, $apidata) | ||||
|      { | ||||
|          parent::handle($args); | ||||
|  | ||||
|          common_debug("in groups api action"); | ||||
|  | ||||
|          $this->auth_user = $apidata['user']; | ||||
|          $group = $this->get_group($apidata['api_arg'], $apidata); | ||||
|  | ||||
|          if (empty($group)) { | ||||
|              $this->clientError('Not Found', 404, $apidata['content-type']); | ||||
|              return false; | ||||
|          } | ||||
|  | ||||
|          if(! $this->auth_user->isMember($group)){ | ||||
|             $this->clientError(_('You are not a member of that group'), $code = 403); | ||||
|             return false; | ||||
|          } | ||||
|  | ||||
|          $member = new Group_member(); | ||||
|  | ||||
|          $member->group_id   = $group->id; | ||||
|          $member->profile_id = $this->auth_user->id; | ||||
|  | ||||
|          if (!$member->find(true)) { | ||||
|             $this->serverError(_('Could not find membership record.')); | ||||
|             return; | ||||
|          } | ||||
|  | ||||
|          $result = $member->delete(); | ||||
|  | ||||
|          if (!$result) { | ||||
|             common_log_db_error($member, 'INSERT', __FILE__); | ||||
|             $this->serverError(sprintf(_('Could not remove user %s to group %s'), | ||||
|                                        $this->auth_user->nickname, $group->nickname)); | ||||
|          } | ||||
|  | ||||
|          switch($apidata['content-type']) { | ||||
|           case 'xml': | ||||
|              $this->show_single_xml_group($group); | ||||
|              break; | ||||
|           case 'json': | ||||
|              $this->show_single_json_group($group); | ||||
|              break; | ||||
|           default: | ||||
|              $this->clientError(_('API method not found!'), $code = 404); | ||||
|          } | ||||
|      } | ||||
|  | ||||
|      function is_member($args, $apidata) | ||||
|      { | ||||
|          parent::handle($args); | ||||
| @@ -326,4 +425,29 @@ require_once INSTALLDIR.'/lib/twitterapi.php'; | ||||
|              $this->clientError(_('API method not found!'), $code = 404); | ||||
|          } | ||||
|      } | ||||
|  | ||||
|      function create($args, $apidata) | ||||
|      { | ||||
|         die("todo"); | ||||
|      } | ||||
|  | ||||
|      function update($args, $apidata) | ||||
|      { | ||||
|         die("todo"); | ||||
|      } | ||||
|  | ||||
|      function update_group_logo($args, $apidata) | ||||
|      { | ||||
|         die("todo"); | ||||
|      } | ||||
|  | ||||
|      function destroy($args, $apidata) | ||||
|      { | ||||
|         die("todo"); | ||||
|      } | ||||
|  | ||||
|      function tag($args, $apidata) | ||||
|      { | ||||
|         die("todo"); | ||||
|      } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user