/app/Http/Controllers/Gedcom/Store.php

https://github.com/modularsoftware/genealogy · PHP · 57 lines · 43 code · 8 blank · 6 comment · 2 complexity · 1048350e926560fa969f9a4113e6a195 MD5 · raw file

  1. <?php
  2. namespace App\Http\Controllers\Gedcom;
  3. use App\Event;
  4. use App\Family;
  5. use App\Http\Controllers\Controller;
  6. use App\Jobs\ImportGedcom;
  7. use App\Note;
  8. use App\Person;
  9. use App\Source;
  10. use App\Traits\ConnectionTrait;
  11. use Auth;
  12. use FamilyTree365\LaravelGedcom\Facades\GedcomParserFacade;
  13. use FamilyTree365\LaravelGedcom\Utils\GedcomParser;
  14. use Illuminate\Http\Request;
  15. use Illuminate\Support\Facades\Artisan;
  16. use LaravelEnso\Multitenancy\Enums\Connections;
  17. class Store extends Controller
  18. {
  19. use ConnectionTrait;
  20. /*
  21. * Api end-point for Gedcom api/gedcom/store
  22. * Saving uploaded file to storage and starting to read
  23. */
  24. public function __invoke(Request $request)
  25. {
  26. $slug = $request->get('slug') ? $request->get('slug') : '';
  27. if ($request->hasFile('file')) {
  28. if ($request->file('file')->isValid()) {
  29. try {
  30. $conn = $this->getConnection();
  31. $db = $this->getDB();
  32. $currentUser = Auth::user();
  33. $_name = uniqid().'.ged';
  34. $request->file->storeAs('gedcom', $_name);
  35. define('STDIN', fopen('php://stdin', 'r'));
  36. // $parser = new GedcomParser();
  37. // $parser->parse($request->file('file'), $slug, true);
  38. $filename = 'app/gedcom/'.$_name;
  39. ImportGedcom::dispatch($filename, $slug, $currentUser->id, $conn, $db);
  40. return ['File uploaded: conn:-'.$conn.'-'];
  41. } catch (\Exception $e) {
  42. return $e->getMessage();
  43. }
  44. }
  45. return ['File corrupted'];
  46. }
  47. return ['Not uploaded'];
  48. }
  49. }