API group actions join/leave now handle same events of web UI action

This commit is contained in:
macno 2011-02-28 11:56:02 +01:00
parent c246c17d3e
commit dc41e3dc2d
2 changed files with 21 additions and 34 deletions

View File

@ -125,26 +125,17 @@ class ApiGroupJoinAction extends ApiAuthAction
return;
}
$member = new Group_member();
$member->group_id = $this->group->id;
$member->profile_id = $this->user->id;
$member->created = common_sql_now();
$result = $member->insert();
if (!$result) {
common_log_db_error($member, 'INSERT', __FILE__);
$this->serverError(
sprintf(
// TRANS: Server error displayed when joining a group fails.
// TRANS: %1$s is a user nickname, $2$s is a group nickname.
_('Could not join user %1$s to group %2$s.'),
$this->user->nickname,
$this->group->nickname
)
);
return;
try {
if (Event::handle('StartJoinGroup', array($this->group, $this->user))) {
Group_member::join($this->group->id, $this->user->id);
Event::handle('EndJoinGroup', array($this->group, $this->user));
}
} catch (Exception $e) {
// TRANS: Server error displayed when joining a group failed in the database.
// TRANS: %1$s is the joining user's nickname, $2$s is the group nickname for which the join failed.
$this->serverError(sprintf(_('Could not join user %1$s to group %2$s.'),
$cur->nickname, $this->group->nickname));
return;
}
switch($this->format) {

View File

@ -116,22 +116,18 @@ class ApiGroupLeaveAction extends ApiAuthAction
return;
}
$result = $member->delete();
if (!$result) {
common_log_db_error($member, 'DELETE', __FILE__);
$this->serverError(
sprintf(
// TRANS: Server error displayed when leaving a group fails.
// TRANS: %1$s is a user nickname, $2$s is a group nickname.
_('Could not remove user %1$s from group %2$s.'),
$this->user->nickname,
$this->group->nickname
)
);
try {
if (Event::handle('StartLeaveGroup', array($this->group,$this->user))) {
Group_member::leave($this->group->id, $this->user->id);
Event::handle('EndLeaveGroup', array($this->group, $this->user));
}
} catch (Exception $e) {
// TRANS: Server error displayed when leaving a group failed in the database.
// TRANS: %1$s is the leaving user's nickname, $2$s is the group nickname for which the leave failed.
$this->serverError(sprintf(_('Could not remove user %1$s from group %2$s.'),
$cur->nickname, $this->group->nickname));
return;
}
switch($this->format) {
case 'xml':
$this->showSingleXmlGroup($this->group);