インポート処理のコントローラーとか実装

This commit is contained in:
shibafu
2020-05-21 22:33:27 +09:00
parent 15c462449f
commit fa4827f382
5 changed files with 107 additions and 0 deletions

View File

@@ -3,7 +3,9 @@
namespace App\Http\Controllers;
use App\DeactivatedUser;
use App\Exceptions\CsvImportException;
use App\Services\CheckinCsvExporter;
use App\Services\CheckinCsvImporter;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
@@ -72,6 +74,36 @@ class SettingController extends Controller
return redirect()->route('setting.privacy')->with('status', 'プライバシー設定を更新しました。');
}
public function import()
{
return view('setting.import');
}
public function storeImport(Request $request)
{
$validated = $request->validate([
'file' => 'required|file'
], [], [
'file' => 'ファイル'
]);
$file = $request->file('file');
if (!$file->isValid()) {
return redirect()->route('setting.import')->withErrors(['file' => 'ファイルのアップロードに失敗しました。']);
}
try {
set_time_limit(0);
$importer = new CheckinCsvImporter(Auth::user(), $file->path());
$importer->execute();
return redirect()->route('setting.import')->with('status', 'インポートに性交しました。');
} catch (CsvImportException $e) {
return redirect()->route('setting.import')->with('import_errors', $e->getErrors());
}
}
public function export()
{
return view('setting.export');