20 lines
1.2 KiB
PHP
20 lines
1.2 KiB
PHP
<?php
|
|
namespace Tempo\Purchasing\SgfSourcing;
|
|
use Illuminate\Http\Request;
|
|
use Tempo\Purchasing\Internal\RequisitionFailure;
|
|
final class Controller
|
|
{
|
|
public function show(Request $request,int $id){return response()->json((new Workspace($request->user()))->read($id))->header('Cache-Control','private, no-store');}
|
|
public function command(Request $request,int $id,string $action){
|
|
try{return response()->json((new Workspace($request->user()))->command($id,$action,$request->all()));}
|
|
catch(RequisitionFailure $e){return response()->json(['message'=>$e->getMessage()],$e->status);}
|
|
catch(\InvalidArgumentException $e){return response()->json(['message'=>$e->getMessage()],422);}
|
|
}
|
|
public function page(Request $request,int $id){
|
|
(new Workspace($request->user()))->read($id);
|
|
$contract=['id'=>$id,'csrf'=>csrf_token(),'context'=>$request->session()->get('company_context.token')];
|
|
ob_start();require __DIR__.'/screen.php';return response(ob_get_clean())->header('Cache-Control','private, no-store');
|
|
}
|
|
public function script(){return response(file_get_contents(__DIR__.'/screen.mjs'))->header('Content-Type','text/javascript');}
|
|
}
|