First pass at endpoints for exporting users and channels in bulk as admin.

This commit is contained in:
ken restivo 2015-11-08 20:50:36 -08:00
parent 11c8cabf28
commit 49d6605377

View file

@ -2416,6 +2416,96 @@ logger('Req: ' . var_export($req,true));
api_register_func('api/oauth/request_token', 'api_oauth_request_token', false);
api_register_func('api/oauth/access_token', 'api_oauth_access_token', false);
function api_export_users(&$a,$type) {
if (! is_site_admin()){
header('HTTP/1.0 401 Unauthorized');
die('Only admin accounts may use this endpoint.');
}
$r = q("SELECT * FROM account");
// TODO: paginating!
$ret = array();
foreach($r as $u){
$ret[] = $u;
}
json_return_and_die(array('status' => 'OK',
'users' => $u));
}
api_register_func('api/export/users','api_export_users', true);
function api_export_channel_hashes(&$a, $type) {
if (! is_site_admin()){
header('HTTP/1.0 401 Unauthorized');
die('Only admin accounts may use this endpoint.');
}
if( $_REQUEST['account_id'] == ''){
header('HTTP/1.0 422 Unprocessable Entity');
die('Must supply account_id parameter.');
}
$c = q("select * from channel where channel_account_id = '%d'",
intval($_REQUEST['account_id']));
if(! $c){
header('HTTP/1.0 404 Not Found');
die('No such account_id '. $_REQUEST['account_id']);
}
$ret = array();
foreach ($c as $r){
$ret[] = $r['channel_hash'];
}
json_return_and_die(array('status' => 'OK',
'channel_hashes' => $ret));
}
api_register_func('api/export/channels','api_export_channel_hashes', true);
function api_export_identity(&$a, $type) {
if (! is_site_admin()){
header('HTTP/1.0 401 Unauthorized');
die('Only admin accounts may use this endpoint.');
}
if( $_REQUEST['channel_hash'] == ''){
header('HTTP/1.0 422 Unprocessable Entity');
die('Must supply channel_hash parameter.');
}
require_once('include/identity.php');
$c = q("select channel_id from channel where channel_hash = '%s' LIMIT 1",
dbesc($_REQUEST['channel_hash']));
if(! $c){
header('HTTP/1.0 404 Not Found');
die('No such channel '. $_REQUEST['channel_hash']);
}
json_return_and_die(
identity_basic_export($c[0]['channel_id'],
(($_REQUEST['posts']) ? intval($_REQUEST['posts']) : 0 )));
}
api_register_func('api/export/identity','api_export_identity', true);
/*
Not implemented by now:
statuses/retweets_of_me