feat: Add export import

This commit is contained in:
Attila Kerekes
2022-11-26 14:35:36 +01:00
committed by Attila Kerekes
parent 2ee5d07e48
commit bb5a078f35
20 changed files with 505 additions and 21 deletions

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\View\View;
class ImportController extends Controller
{
/**
* Instantiate a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
$this->middleware('allowed');
}
/**
* Handle the incoming request.
*
* @param Request $request
* @return View
*/
public function __invoke(Request $request): View
{
return view('items.import');
}
}

View File

@@ -12,9 +12,9 @@ use GuzzleHttp\Exception\ConnectException;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Exception\ServerException;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\URL;
@@ -191,10 +191,10 @@ class ItemController extends Controller
/**
* @param Request $request
* @param $id
* @return void
* @param null $id
* @return Item
*/
public function storelogic(Request $request, $id = null)
public static function storelogic(Request $request, $id = null): Item
{
$application = Application::single($request->input('appid'));
$validatedData = $request->validate([
@@ -275,6 +275,7 @@ class ItemController extends Controller
}
$item->parents()->sync($request->tags);
return $item;
}
/**
@@ -285,7 +286,7 @@ class ItemController extends Controller
*/
public function store(Request $request): RedirectResponse
{
$this->storelogic($request);
self::storelogic($request);
$route = route('dash', []);
@@ -313,7 +314,7 @@ class ItemController extends Controller
*/
public function update(Request $request, int $id): RedirectResponse
{
$this->storelogic($request, $id);
self::storelogic($request, $id);
$route = route('dash', []);
return redirect($route)

View File

@@ -0,0 +1,111 @@
<?php
namespace App\Http\Controllers;
use App\Item;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class ItemRestController extends Controller
{
public function __construct()
{
parent::__construct();
$this->middleware('allowed');
}
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$columns = [
'title',
'colour',
'url',
'description',
'appid',
'appdescription',
];
return Item::select($columns)
->where('deleted_at', null)
->where('type', '0')
->orderBy('order', 'asc')
->get();
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
}
/**
* Store a newly created resource in storage.
*
* @param Request $request
* @return object
*/
public function store(Request $request): object
{
$item = ItemController::storelogic($request);
if ($item) {
return (object) ['status' => 'OK'];
}
return (object) ['status' => 'FAILED'];
}
/**
* Display the specified resource.
*
* @param Item $item
* @return Response
*/
public function show(Item $item)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param Item $item
* @return Response
*/
public function edit(Item $item)
{
//
}
/**
* Update the specified resource in storage.
*
* @param Request $request
* @param Item $item
* @return Response
*/
public function update(Request $request, Item $item)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param Item $item
* @return Response
*/
public function destroy(Item $item)
{
//
}
}