mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 09:15:19 +00:00
Merge pull request #133 from kenrestivo/export-v1
First pass at endpoints for exporting users and channels as admin.
This commit is contained in:
commit
10f7199c63
1 changed files with 90 additions and 0 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue