1
0
Fork 0
forked from mirror/pixelfed

Move data export to its own controller

This commit is contained in:
Daniel Supernault 2019-04-24 13:32:23 -06:00
parent f53d129101
commit de8d472527
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
2 changed files with 68 additions and 50 deletions

View file

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Settings;
use App\AccountLog;
use App\Following;
use App\Report;
use App\UserFilter;
use Auth, Cookie, DB, Cache, Purify;
use Carbon\Carbon;
use Illuminate\Http\Request;
trait ExportSettings
{
public function dataExport()
{
return view('settings.dataexport');
}
public function exportFollowing()
{
$data = Cache::remember('account:export:profile:following:'.Auth::user()->profile->id, now()->addMinutes(60), function() {
return Auth::user()->profile->following()->get()->map(function($i) {
return $i->url();
});
});
return response()->streamDownload(function () use($data) {
echo $data;
}, 'following.json');
}
public function exportFollowers()
{
$data = Cache::remember('account:export:profile:followers:'.Auth::user()->profile->id, now()->addMinutes(60), function() {
return Auth::user()->profile->followers()->get()->map(function($i) {
return $i->url();
});
});
return response()->streamDownload(function () use($data) {
echo $data;
}, 'followers.json');
}
public function exportMuteBlockList()
{
$profile = Auth::user()->profile;
$exists = UserFilter::select('id')
->whereUserId($profile->id)
->exists();
if(!$exists) {
return redirect()->back();
}
$data = Cache::remember('account:export:profile:muteblocklist:'.Auth::user()->profile->id, now()->addMinutes(60), function() use($profile) {
return json_encode([
'muted' => $profile->mutedProfileUrls(),
'blocked' => $profile->blockedProfileUrls()
], JSON_PRETTY_PRINT);
});
return response()->streamDownload(function () use($data) {
echo $data;
}, 'muted-and-blocked-accounts.json');
}
}

View file

@ -10,6 +10,7 @@ use Auth, Cookie, DB, Cache, Purify;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Settings\{
ExportSettings,
HomeSettings,
PrivacySettings,
SecuritySettings
@ -18,7 +19,8 @@ use App\Jobs\DeletePipeline\DeleteAccountPipeline;
class SettingsController extends Controller
{
use HomeSettings,
use ExportSettings,
HomeSettings,
PrivacySettings,
SecuritySettings;
@ -67,55 +69,6 @@ class SettingsController extends Controller
return view('settings.applications');
}
public function dataExport()
{
return view('settings.dataexport');
}
public function exportFollowing()
{
$data = Cache::remember('account:export:profile:following:'.Auth::user()->profile->id, now()->addMinutes(60), function() {
return Auth::user()->profile->following()->get()->map(function($i) {
return $i->url();
});
});
return response()->streamDownload(function () use($data) {
echo $data;
}, 'following.json');
}
public function exportFollowers()
{
$data = Cache::remember('account:export:profile:followers:'.Auth::user()->profile->id, now()->addMinutes(60), function() {
return Auth::user()->profile->followers()->get()->map(function($i) {
return $i->url();
});
});
return response()->streamDownload(function () use($data) {
echo $data;
}, 'followers.json');
}
public function exportMuteBlockList()
{
$profile = Auth::user()->profile;
$exists = UserFilter::select('id')
->whereUserId($profile->id)
->exists();
if(!$exists) {
return redirect()->back();
}
$data = Cache::remember('account:export:profile:muteblocklist:'.Auth::user()->profile->id, now()->addMinutes(60), function() use($profile) {
return json_encode([
'muted' => $profile->mutedProfileUrls(),
'blocked' => $profile->blockedProfileUrls()
], JSON_PRETTY_PRINT);
});
return response()->streamDownload(function () use($data) {
echo $data;
}, 'muted-and-blocked-accounts.json');
}
public function dataImport()
{
return view('settings.import.home');