Sindbad~EG File Manager
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\File;
use App\Models\Startup;
use App\Models\Resposta;
use App\Models\RespostaPergunta;
class StartupController extends Controller
{
public function create(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'cnpj' => 'nullable',
'foundation_year' => 'required',
'state' => 'required',
'city' => 'required',
'sector' => 'required',
'photo' => 'nullable',
'stage' => 'required',
]);
if ($validator->fails()) {
return response()->json(['error' => $validator->errors()], 400);
}
$startup = new Startup([
'name' => $request->name,
'cnpj' => $request->cnpj,
'foundation_year' => $request->foundation_year,
'state' => $request->state,
'city' => $request->city,
'sector' => $request->sector,
'photo' => $request->photo,
'stage' => $request->stage,
]);
$startup->stage = $request->stage;
if ($request->filled('photo')) {
$base64Image = $request->input('photo');
$startup->photo = $base64Image;
}
if (Auth::check()) {
// O usuário está autenticado, vincule a startup ao usuário atualmente autenticado
$user = Auth::user();
$user->startups()->save($startup);
} else {
// O usuário não está autenticado, associe a startup ao usuário usando o ID fornecido na requisição
$userId = $request->input('id');
$startup->user_id = $userId;
$startup->save();
}
return response()->json(['message' => 'Startup criada com sucesso'], 201);
}
public function index()
{
$startups = Startup::with('respostas', 'respostas.respostasPerguntas')->get();
return response()->json($startups);
}
public function update(Request $request, $startupId)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'cnpj' => 'required|unique:startups,cnpj,'.$startupId,
'foundation_year' => 'required',
'state' => 'required',
'city' => 'required',
'sector' => 'required',
'photo' => 'nullable',
'stage' => 'required',
]);
if ($validator->fails()) {
return response()->json(['error' => $validator->errors()], 400);
}
$user = Auth::user();
$startup = $user->startups()->find($startupId);
if (!$startup) {
return response()->json(['error' => 'Startup não encontrada'], 404);
}
$startup->name = $request->name;
$startup->cnpj = $request->cnpj;
$startup->foundation_year = $request->foundation_year;
$startup->state = $request->state;
$startup->city = $request->city;
$startup->sector = $request->sector;
$startup->photo = $request->photo;
$startup->stage = $request->stage;
$startup->save();
return response()->json(['message' => 'Startup atualizada com sucesso'], 200);
}
public function deleteStartup(Request $request, $startupId)
{
$user = Auth::user();
$startup = $user->startups()->find($startupId);
if (!$startup) {
return response()->json(['error' => 'Startup não encontrada'], 404);
}
$startup->delete();
return response()->json(['message' => 'Startup excluída com sucesso'], 200);
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists