]> git.mxchange.org Git - friendica.git/commitdiff
Basic support for account/update_profile API (fixes #4094)
authorPierre Rudloff <contact@rudloff.pro>
Fri, 22 Dec 2017 23:46:01 +0000 (00:46 +0100)
committerPierre Rudloff <contact@rudloff.pro>
Mon, 25 Dec 2017 20:10:26 +0000 (21:10 +0100)
doc/api.md
include/api.php

index c565d8699c0e8d26b2d0595008cb78491928a160..3306c7d4ddea9ac436ab25fe0af0155e387f921e 100644 (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)
 
 #### Unsupported parameters
@@ -1205,7 +1222,6 @@ The following API calls from the Twitter API are not implemented in either Frien
 * friendships/lookup
 * account/settings
 * account/update_delivery_device
-* account/update_profile
 * blocks/ids
 * users/show
 * users/search
index 0b401f6dfff13ac3b02e4df74c29642a97040081..46b7cd3dea06924aa7feb9da210c98afb65b913c 100644 (file)
@@ -4472,6 +4472,39 @@ 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/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 = local_user();
+       $api_user = api_get_user(get_app());
+
+       if (x($_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 (x($_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());
+
+       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