whereNull('pronto_atendimento_classificacao_risco.deleted_at') ->join( 'pronto_atendimento_classificacao_risco_tipo', 'pronto_atendimento_classificacao_risco_tipo.id', 'pronto_atendimento_classificacao_risco.tipo_id' ) ->select([ 'pronto_atendimento_classificacao_risco.id', 'pronto_atendimento_classificacao_risco.nome', 'pronto_atendimento_classificacao_risco_tipo.nome as tipo', 'pronto_atendimento_classificacao_risco_tipo.cor as cor', ]); return datatables()->of($classificacoes)->toJson(); } public function index() { $this->auth(__FUNCTION__); $classificacoes = $this->get(ClassificacaoRisco::class)->orderBy('nome')->get(); return response()->json($classificacoes, Response::HTTP_OK); } public function create() { $this->auth(__FUNCTION__); $classificacao = new ClassificacaoRisco(); $classificacao->fill(array_fill_keys($classificacao->getFillable(), null)); return response()->json( [ 'form' => $this->getFormData(), 'model' => $classificacao->makeHidden('id') ], Response::HTTP_OK ); } public function store(ClassificacaoRiscoRequest $request) { $this->auth(__FUNCTION__); $classificacao = ClassificacaoRisco::create($request->all())->fresh(); return response()->json($classificacao, Response::HTTP_CREATED); } public function show($id) { $this->auth(__FUNCTION__); return response()->json($this->get(ClassificacaoRisco::class, $id), Response::HTTP_OK); } public function edit($id) { $this->auth(__FUNCTION__); $classificacao = ClassificacaoRisco::findOrFail($id); return response()->json( [ 'form' => $this->getFormData(), 'model' => $classificacao->makeHidden('id')->unsetRelation('tipo'), ], Response::HTTP_OK ); } private function getFormData() { return [ 'tipos' => Tipo::orderBy('nome')->get(['id', 'nome']) ]; } public function update(ClassificacaoRiscoRequest $request, $id) { $this->auth(__FUNCTION__); $classificacao = tap(ClassificacaoRisco::findOrFail($id))->update($request->all()); return response()->json($classificacao->fresh(), Response::HTTP_OK); } public function destroy($id) { $this->auth(__FUNCTION__); ClassificacaoRisco::findOrFail($id)->delete(); return response()->json(null, Response::HTTP_NO_CONTENT); } }