* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @author Zach Copley <zach@status.net>
- * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009-2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
parent::prepare($args);
$this->user = $this->auth_user;
- $this->other = $this->getTargetUser($this->arg('id'));
+ $this->other = $this->getTargetProfile($this->arg('id'));
return true;
}
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @author Zach Copley <zach@status.net>
- * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009-2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
parent::prepare($args);
$this->user = $this->auth_user;
- $this->other = $this->getTargetUser($this->arg('id'));
+ $this->other = $this->getTargetProfile($this->arg('id'));
return true;
}
* @author Dan Moore <dan@moore.cx>
* @author Evan Prodromou <evan@status.net>
* @author Zach Copley <zach@status.net>
- * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009-2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
parent::prepare($args);
$this->user = $this->auth_user;
- $this->other = $this->getTargetUser($id);
+ $this->other = $this->getTargetProfile($this->arg('id'));
return true;
}
if (empty($this->other)) {
$this->clientError(
- _('Could not follow user: User not found.'),
+ _('Could not follow user: profile not found.'),
403,
$this->format
);
* @author Dan Moore <dan@moore.cx>
* @author Evan Prodromou <evan@status.net>
* @author Zach Copley <zach@status.net>
- * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009-2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
parent::prepare($args);
$this->user = $this->auth_user;
- $this->other = $this->getTargetUser($id);
+ $this->other = $this->getTargetProfile($this->arg('id'));
return true;
}
}
// throws an exception on error
- Subscription::cancel($this->user->getProfile(),
- $this->other->getProfile());
+ Subscription::cancel($this->user->getProfile(), $this->other);
$this->initDocument($this->format);
$this->showProfile($this->other, $this->format);
* @author Dan Moore <dan@moore.cx>
* @author Evan Prodromou <evan@status.net>
* @author Zach Copley <zach@status.net>
- * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009-2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class ApiFriendshipsExistsAction extends ApiPrivateAuthAction
{
- var $user_a = null;
- var $user_b = null;
+ var $profile_a = null;
+ var $profile_b = null;
/**
* Take arguments for running
{
parent::prepare($args);
- $user_a_id = $this->trimmed('user_a');
- $user_b_id = $this->trimmed('user_b');
-
- $this->user_a = $this->getTargetUser($user_a_id);
- $this->user_b = $this->getTargetUser($user_b_id);
+ $this->profile_a = $this->getTargetProfile($this->trimmed('user_a'));
+ $this->profile_b = $this->getTargetProfile($this->trimmed('user_b'));
return true;
}
{
parent::handle($args);
- if (empty($this->user_a) || empty($this->user_b)) {
+ if (empty($this->profile_a) || empty($this->profile_b)) {
$this->clientError(
- _('Two user ids or screen_names must be supplied.'),
+ _('Two valid IDs or screen_names must be supplied.'),
400,
$this->format
);
return;
}
- $result = $this->user_a->isSubscribed($this->user_b);
+ $result = Subscription::exists($this->profile_a, $this->profile_b);
switch ($this->format) {
case 'xml':
}
}
+ function getTargetProfile($id)
+ {
+ if (empty($id)) {
+
+ // Twitter supports these other ways of passing the user ID
+ if (is_numeric($this->arg('id'))) {
+ return Profile::staticGet($this->arg('id'));
+ } else if ($this->arg('id')) {
+ $nickname = common_canonical_nickname($this->arg('id'));
+ return Profile::staticGet('nickname', $nickname);
+ } else if ($this->arg('user_id')) {
+ // This is to ensure that a non-numeric user_id still
+ // overrides screen_name even if it doesn't get used
+ if (is_numeric($this->arg('user_id'))) {
+ return Profile::staticGet('id', $this->arg('user_id'));
+ }
+ } else if ($this->arg('screen_name')) {
+ $nickname = common_canonical_nickname($this->arg('screen_name'));
+ return Profile::staticGet('nickname', $nickname);
+ }
+ } else if (is_numeric($id)) {
+ return Profile::staticGet($id);
+ } else {
+ $nickname = common_canonical_nickname($id);
+ return Profile::staticGet('nickname', $nickname);
+ }
+ }
+
function getTargetGroup($id)
{
if (empty($id)) {