Make /api/account/update_profile_background_image.format work even
when there isn't an existing Design for the user. Plus a few other fixups.
This commit is contained in:
parent
312c745884
commit
c8bd6d9f7a
|
@ -67,7 +67,7 @@ class ApiAccountRateLimitStatusAction extends ApiBareAuthAction
|
|||
|
||||
if (!in_array($this->format, array('xml', 'json'))) {
|
||||
$this->clientError(
|
||||
_('API method not found!'),
|
||||
_('API method not found.'),
|
||||
404,
|
||||
$this->format
|
||||
);
|
||||
|
|
|
@ -92,6 +92,15 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
|
|||
return;
|
||||
}
|
||||
|
||||
if (!in_array($this->format, array('xml', 'json'))) {
|
||||
$this->clientError(
|
||||
_('API method not found.'),
|
||||
404,
|
||||
$this->format
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($this->user)) {
|
||||
$this->clientError(_('No such user.'), 404, $this->format);
|
||||
return;
|
||||
|
@ -135,7 +144,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
|
|||
|
||||
if (!$result) {
|
||||
common_log_db_error($profile, 'UPDATE', __FILE__);
|
||||
$this->serverError(_('Couldn\'t save profile.'));
|
||||
$this->serverError(_('Could not save profile.'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -89,6 +89,15 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
|||
return;
|
||||
}
|
||||
|
||||
if (!in_array($this->format, array('xml', 'json'))) {
|
||||
$this->clientError(
|
||||
_('API method not found.'),
|
||||
404,
|
||||
$this->format
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// Workaround for PHP returning empty $_POST and $_FILES when POST
|
||||
// length > post_max_size in php.ini
|
||||
|
||||
|
@ -104,10 +113,46 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
|||
}
|
||||
|
||||
if (empty($this->user)) {
|
||||
$this->clientError(_('No such user!'), 404, $this->format);
|
||||
$this->clientError(_('No such user.'), 404, $this->format);
|
||||
return;
|
||||
}
|
||||
|
||||
$design = $this->user->getDesign();
|
||||
|
||||
// XXX: This is kinda gross, but before we can add a background
|
||||
// img we have to make sure there's a Design because design ID
|
||||
// is part of the img filename.
|
||||
|
||||
if (empty($design)) {
|
||||
|
||||
$this->user->query('BEGIN');
|
||||
|
||||
// save new design
|
||||
$design = new Design();
|
||||
$id = $design->insert();
|
||||
|
||||
if (empty($id)) {
|
||||
common_log_db_error($id, 'INSERT', __FILE__);
|
||||
$this->clientError(_('Unable to save your design settings.'));
|
||||
return;
|
||||
}
|
||||
|
||||
$original = clone($this->user);
|
||||
$this->user->design_id = $id;
|
||||
$result = $this->user->update($original);
|
||||
|
||||
if (empty($result)) {
|
||||
common_log_db_error($original, 'UPDATE', __FILE__);
|
||||
$this->clientError(_('Unable to save your design settings.'));
|
||||
$this->user->query('ROLLBACK');
|
||||
return;
|
||||
}
|
||||
|
||||
$this->user->query('COMMIT');
|
||||
}
|
||||
|
||||
// Okay, now get the image and add it to the design
|
||||
|
||||
try {
|
||||
$imagefile = ImageFile::fromUpload('image');
|
||||
} catch (Exception $e) {
|
||||
|
@ -115,8 +160,6 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
|||
return;
|
||||
}
|
||||
|
||||
$design = $this->user->getDesign();
|
||||
|
||||
$filename = Design::filename(
|
||||
$design->id,
|
||||
image_type_to_extension($imagefile->type),
|
||||
|
@ -134,16 +177,14 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
|||
}
|
||||
|
||||
$original = clone($design);
|
||||
|
||||
$design->backgroundimage = $filename;
|
||||
|
||||
$design->setDisposition(true, false, !empty($this->tile));
|
||||
$design->setDisposition(true, false, ($this->tile == 'true'));
|
||||
|
||||
$result = $design->update($original);
|
||||
|
||||
if ($result === false) {
|
||||
common_log_db_error($design, 'UPDATE', __FILE__);
|
||||
$this->showForm(_('Couldn\'t update your design.'));
|
||||
$this->showForm(_('Could not update your design.'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -154,7 +195,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
|||
return;
|
||||
}
|
||||
|
||||
$twitter_user = $this->twitterUserArray($this->user->getProfile(), true);
|
||||
$twitter_user = $this->twitterUserArray($profile, true);
|
||||
|
||||
if ($this->format == 'xml') {
|
||||
$this->initDocument('xml');
|
||||
|
|
|
@ -113,6 +113,15 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
|||
return;
|
||||
}
|
||||
|
||||
if (!in_array($this->format, array('xml', 'json'))) {
|
||||
$this->clientError(
|
||||
_('API method not found.'),
|
||||
404,
|
||||
$this->format
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
$design = $this->user->getDesign();
|
||||
|
||||
if (!empty($design)) {
|
||||
|
@ -130,7 +139,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
|||
|
||||
if ($result === false) {
|
||||
common_log_db_error($design, 'UPDATE', __FILE__);
|
||||
$this->clientError(_('Couldn\'t update your design.'));
|
||||
$this->clientError(_('Could not update your design.'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -152,7 +161,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
|||
|
||||
if (empty($id)) {
|
||||
common_log_db_error($id, 'INSERT', __FILE__);
|
||||
$this->clientError(_('Unable to save your design settings!'));
|
||||
$this->clientError(_('Unable to save your design settings.'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -162,7 +171,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
|||
|
||||
if (empty($result)) {
|
||||
common_log_db_error($original, 'UPDATE', __FILE__);
|
||||
$this->clientError(_('Unable to save your design settings!'));
|
||||
$this->clientError(_('Unable to save your design settings.'));
|
||||
$this->user->query('ROLLBACK');
|
||||
return;
|
||||
}
|
||||
|
@ -177,7 +186,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
|||
return;
|
||||
}
|
||||
|
||||
$twitter_user = $this->twitterUserArray($this->user->getProfile(), true);
|
||||
$twitter_user = $this->twitterUserArray($profile, true);
|
||||
|
||||
if ($this->format == 'xml') {
|
||||
$this->initDocument('xml');
|
||||
|
|
|
@ -102,7 +102,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
|
|||
}
|
||||
|
||||
if (empty($this->user)) {
|
||||
$this->clientError(_('No such user!'), 404, $this->format);
|
||||
$this->clientError(_('No such user.'), 404, $this->format);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -135,7 +135,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
|
|||
|
||||
common_broadcast_profile($profile);
|
||||
|
||||
$twitter_user = $this->twitterUserArray($this->user->getProfile(), true);
|
||||
$twitter_user = $this->twitterUserArray($profile, true);
|
||||
|
||||
if ($this->format == 'xml') {
|
||||
$this->initDocument('xml');
|
||||
|
|
Loading…
Reference in New Issue
Block a user