X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fapiaccountupdatelinkcolor.php;h=a81523d094eaed053253d386010abdb24dcc94c6;hb=b15f5f0cafc08c9b63090c5b4f7494fca0634238;hp=9416a32cb787d0417edc2b74a96d59dcf7498a12;hpb=34a6624452e8b7f60b40181441c6ea2c8158379a;p=quix0rs-gnu-social.git diff --git a/actions/apiaccountupdatelinkcolor.php b/actions/apiaccountupdatelinkcolor.php index 9416a32cb7..a81523d094 100644 --- a/actions/apiaccountupdatelinkcolor.php +++ b/actions/apiaccountupdatelinkcolor.php @@ -20,7 +20,7 @@ * along with this program. If not, see . * * @category API - * @package GNUSocial + * @package GNUsocial * @author Hannes Mannerheim * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://www.gnu.org/software/social/ @@ -32,6 +32,8 @@ class ApiAccountUpdateLinkColorAction extends ApiAuthAction { var $linkcolor = null; + protected $needPost = true; + /** * Take arguments for running * @@ -39,11 +41,13 @@ class ApiAccountUpdateLinkColorAction extends ApiAuthAction * * @return boolean success flag */ - function prepare($args) + protected function prepare(array $args=array()) { parent::prepare($args); - $this->user = $this->auth_user; + if ($this->format !== 'json') { + $this->clientError('This method currently only serves JSON.', 415); + } $this->linkcolor = $this->trimmed('linkcolor'); @@ -60,45 +64,26 @@ class ApiAccountUpdateLinkColorAction extends ApiAuthAction * * @return void */ - function handle($args) + protected function handle() { - parent::handle($args); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->clientError( - _('This method requires a POST.'), - 400, $this->format - ); - return; + parent::handle(); + + $validhex = preg_match('/^[a-f0-9]{6}$/i',$this->linkcolor); + if ($validhex === false || $validhex == 0) { + $this->clientError(_('Not a valid hex color.'), 400); } - - $validhex = preg_match('/^[a-f0-9]{6}$/i',$this->linkcolor); - if($validhex === false || $validhex == 0) { - $this->clientError(_('Not a valid hex color.'),404,'json'); - return; - } - - // save the new color - $original = clone($this->user); - $this->user->linkcolor = $this->linkcolor; - if (!$this->user->update($original)) { - $this->clientError(_('Error updating user.'),404,'json'); - return; - } - - $profile = $this->user->getProfile(); - - if (empty($profile)) { - $this->clientError(_('User has no profile.'),'json'); - return; + + // save the new color + $original = clone($this->auth_user); + $this->auth_user->linkcolor = $this->linkcolor; + if (!$this->auth_user->update($original)) { + $this->clientError(_('Error updating user.'), 400); } - $twitter_user = $this->twitterUserArray($profile, true); + $twitter_user = $this->twitterUserArray($this->scoped, true); $this->initDocument('json'); $this->showJsonObjects($twitter_user); $this->endDocument('json'); } - - }