Merge pull request #4130 from Rudloff/feature/update_profile_api

Basic support for account/update_profile API (fixes #4094)
This commit is contained in:
Hypolite Petovan 2017-12-25 20:06:34 -05:00 committed by GitHub
commit 06f32aaaa6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 1 deletions

View file

@ -692,6 +692,23 @@ On error:
--- ---
### account/update_profile (POST; AUTH)
#### Parameters
* name (optional): full name of the user
* description (optional): a description of the user
#### Unsupported parameters
* url
* location
* profile_link_color
* include_entities
* skip_status
---
### friendships/incoming (*; AUTH) ### friendships/incoming (*; AUTH)
#### Unsupported parameters #### Unsupported parameters
@ -1205,7 +1222,6 @@ The following API calls from the Twitter API are not implemented in either Frien
* friendships/lookup * friendships/lookup
* account/settings * account/settings
* account/update_delivery_device * account/update_delivery_device
* account/update_profile
* blocks/ids * blocks/ids
* users/show * users/show
* users/search * users/search

View file

@ -4472,6 +4472,44 @@ api_register_func('api/friendica/photo/delete', 'api_fr_photo_delete', true, API
api_register_func('api/friendica/photo', 'api_fr_photo_detail', true); api_register_func('api/friendica/photo', 'api_fr_photo_detail', true);
api_register_func('api/account/update_profile_image', 'api_account_update_profile_image', true, API_METHOD_POST); api_register_func('api/account/update_profile_image', 'api_account_update_profile_image', true, API_METHOD_POST);
/**
* Update user profile
*
* @param string $type Known types are 'atom', 'rss', 'xml' and 'json'
*
* @return array|string
*/
function api_account_update_profile($type)
{
$local_user = api_user();
$api_user = api_get_user(get_app());
if (!empty($_POST['name'])) {
dba::update('profile', ['name' => $_POST['name']], ['uid' => $local_user]);
dba::update('user', ['username' => $_POST['name']], ['uid' => $local_user]);
dba::update('contact', ['name' => $_POST['name']], ['uid' => $local_user, 'self' => 1]);
dba::update('contact', ['name' => $_POST['name']], ['id' => $api_user['id']]);
}
if (isset($_POST['description'])) {
dba::update('profile', ['about' => $_POST['description']], ['uid' => $local_user]);
dba::update('contact', ['about' => $_POST['description']], ['uid' => $local_user, 'self' => 1]);
dba::update('contact', ['about' => $_POST['description']], ['id' => $api_user['id']]);
}
Worker::add(PRIORITY_LOW, 'ProfileUpdate', api_user());
// Update global directory in background
$url = $_SESSION['my_url'];
if ($url && strlen(Config::get('system', 'directory'))) {
Worker::add(PRIORITY_LOW, "Directory", $url);
}
return api_account_verify_credentials($type);
}
/// @TODO move to top of file or somewhere better
api_register_func('api/account/update_profile', 'api_account_update_profile', true, API_METHOD_POST);
/** /**
* *
* @param string $acl_string * @param string $acl_string