Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Carbon\Carbon;
- use App\Models\Format;
- use App\Models\Company;
- use App\Shared\Logger;
- use App\Shared\Mailer;
- use App\Shared\UserUtils;
- use Illuminate\Http\Request;
- use App\Formatters\Formatter;
- use App\Models\Transformation;
- use Illuminate\Routing\Controller;
- use Illuminate\Support\Facades\Storage;
- use Illuminate\Support\Facades\Mail;
- use File;
- class UserFormatController extends Controller
- {
- public function tranformForm(Request $request, $id)
- {
- $format = Format::with('format_subscription')->find($id);
- return view('format.userForm')->with(['format' => $format]);
- }
- public function uploadFiles(Request $request)
- {
- if ($request->ajax()) {
- $format = Format::find($request->id);
- $formatter = $format->buildFormatter();
- $afterslug = $formatter->getAfterSlug();
- $inputFile = $request->file('file');
- $filename = date('Ymd-His') . '-format' . str_pad($request->id, 4, '0', STR_PAD_LEFT) . '.' . $inputFile->getClientOriginalName();
- $inputFilepath = storage_path('input_files' . config('app.fileSystemSeparator') . $format->slug . config('app.fileSystemSeparator') . $formatter->getAfterSlug());
- Logger::info(__METHOD__, "Saving input file " . ($filename) . '...');
- $inputRealpath = $inputFilepath . $filename;
- $inputFile->move($inputFilepath, $filename);
- return response()->json([
- 'success' => true,
- 'filename' => $filename,
- ], 200);
- }
- }
- public function doTransform(Request $request, $id)
- {
- $format = Format::find($request->id);
- $formatter = $format->buildFormatter();
- $filenames = json_decode($request->filenames);
- if (count($filenames) > 1) {
- foreach ($filenames as $k => $v) {
- $inputFilepath[$k] = storage_path('input_files' . config('app.fileSystemSeparator') . $format->slug . config('app.fileSystemSeparator') . $formatter->getAfterSlug());
- $inputRealpath[$k] = $inputFilepath[$k] . config('app.fileSystemSeparator') . $filenames[$k];
- $formatter->addInputFile($inputRealpath[$k]);
- $formatter->setOutputPath(storage_path('output_files' . config('app.fileSystemSeparator')));
- $outputFilename = $formatter->getOutputFilename();
- $path = storage_path('output_files' . config('app.fileSystemSeparator'));
- $outputFilepath = $path . $format->slug . config('app.fileSystemSeparator') . $formatter->getAfterSlug() . config('app.fileSystemSeparator') . $outputFilename;
- $outputRealFilepath = $outputFilepath;
- }
- } else {
- $inputFilepath = storage_path('input_files' . config('app.fileSystemSeparator') . $format->slug . config('app.fileSystemSeparator') . $formatter->getAfterSlug());
- $inputRealpath = $inputFilepath . config('app.fileSystemSeparator') . $filenames[0];
- $formatter->addInputFile($inputRealpath);
- $formatter->setOutputPath(storage_path('output_files' . config('app.fileSystemSeparator')));
- $outputFilename = $formatter->getOutputFilename();
- $path = storage_path('output_files');
- $outputFilepath = $path . config('app.fileSystemSeparator') . $format->slug . config('app.fileSystemSeparator') . $outputFilename;
- $outputRealFilepath = $outputFilepath;
- }
- if (count($filenames) >= 2) {
- $string_resultData = $formatter->format();
- $resultData = explode('\n', $string_resultData);
- $outputFile = $formatter->writeOutput($resultData, $outputRealFilepath);
- } else if (count($filenames) == 1) {
- $resultData = $formatter->format();
- $outputFile = $formatter->writeOutput($resultData, $outputRealFilepath);
- }
- Logger::info(__METHOD__, "Saving output file " . ($outputRealFilepath) . '...');
- $data = [
- 'format_id' => $format->id,
- 'company_id' => UserUtils::getCompanyID(),
- 'transformation_time' => Carbon::now(),
- 'error' => '',
- 'input_files' => json_encode($inputRealpath),
- 'output_files' => json_encode($outputRealFilepath),
- 'notes' => $request->notes,
- ];
- $transform = Transformation::create($data);
- $mailer = new Mailer();
- $company = Company::find($format->company_id);
- $with = [
- 'company_name' => $company->company_name
- ];
- $attach = $mailer->getAttachFromStorage($outputRealFilepath, $outputFilename);
- if (!is_null($attach)) {
- $viewEmail = "emails.test";
- $subjectEmail = "Your File is Converted";
- $result = $mailer->sendMail($viewEmail, $company, $subjectEmail, $with, $attach);
- }
- return response()->download($outputRealFilepath);
- }
- public function transformed(Request $request)
- {
- return view('format.userTransformed');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement