json($data)->header('Cache-Control','no-store, private'); } public function index(Request $r,ServiceInvoicing $s) { return $this->response($s->listing($r->user()->id)); } public function propose(Request $r,ServiceInvoicing $s) { return $this->response($s->propose($r->user()->id,$r->all())); } public function decide(Request $r,int $id,ServiceInvoicing $s) { return $this->response($s->decide($id,$r->user()->id,$r->all())); } public function review(Request $r,int $id,ServiceInvoicing $s) { abort_if(array_diff(array_keys($r->all()),['series_id','rule_id'])!==[],422); $d=$r->validate(['series_id'=>'required|integer|min:1','rule_id'=>'required|integer|min:1']); return $this->response($s->review($id,(int)$d['series_id'],(int)$d['rule_id'],$r->user()->id)); } public function issue(Request $r,int $id,ServiceInvoicing $s) { return $this->response($s->issue($id,$r->user()->id,$r->all(),(string)$r->header('Idempotency-Key'))); } public function show(Request $r,int $id,ServiceInvoicing $s) { return $this->response($s->show($id,$r->user()->id)); } public function pdf(Request $r,int $id,ServiceInvoicing $s) { return response($s->pdf($id,$r->user()->id))->header('Content-Type','application/pdf')->header('Content-Disposition','attachment; filename="test-invoice-'.$id.'.pdf"')->header('Cache-Control','no-store, private')->header('X-Content-Type-Options','nosniff'); } public function correction(Request $r,int $id,ServiceInvoicing $s) { return $this->response($s->requestCorrection($id,$r->user()->id,$r->all())); } }