Skip to content

Instantly share code, notes, and snippets.

@rcervera
Last active October 19, 2023 06:41
Show Gist options
  • Save rcervera/c7fce66c87df789840c3559943b3a20a to your computer and use it in GitHub Desktop.
Save rcervera/c7fce66c87df789840c3559943b3a20a to your computer and use it in GitHub Desktop.
<?php
namespace App\Http\Controllers\api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Planet;
use Validator;
class planetController extends Controller
{
//
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$planets = Planet::latest()->paginate(10);
$response = [
'success' => true,
'message' => "Llistat planetes recuperat",
'data' => $planets,
];
//return $response;
return response()->json($response,200);
}
public function all()
{
$planets = Planet::all();
$response = [
'success' => true,
'message' => "Llistat planetes recuperat",
'data' => $planets,
];
return response()->json($response,200);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// validar camps
$input = $request->all();
$validator = Validator::make($input,
[
'name'=>'required|min:3|max:10',
]
);
if($validator->fails()) {
$response = [
'success' => false,
'message' => "Errors de validació",
'data' => $validator->errors()->all(),
];
return response()->json($response,400);
}
// [ "name"=>"planetaP", .......]
$planet = Planet::create($input);
$response = [
'success' => true,
'message' => "Planeta creat correctament",
'data' => $planet,
];
return response()->json($response,200);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
$planet = Planet::find($id);
if($planet==null) {
$response = [
'success' => false,
'message' => "Planeta no trobat",
'data' => [],
];
return response()->json($response,404);
}
$response = [
'success' => true,
'message' => "Planeta trobat",
'data' => $planet,
];
return response()->json($response,200);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$planet = Planet::find($id);
if($planet==null) {
$response = [
'success' => false,
'message' => "Planeta no trobat",
'data' => [],
];
return response()->json($response,404);
}
$input = $request->all();
$validator = Validator::make($input,
[
'name'=>'required|min:3|max:10',
]
);
if($validator->fails()) {
$response = [
'success' => false,
'message' => "Errors de validació",
'data' => $validator->errors()->all(),
];
return response()->json($response,400);
}
$planet->update($input);
$response = [
'success' => true,
'message' => "Planeta actualitzat correctament",
'data' => $planet,
];
return response()->json($response,200);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
$planet = Planet::find($id);
if($planet==null) {
$response = [
'success' => false,
'message' => "Planeta no trobat",
'data' => [],
];
return response()->json($response,404);
}
try {
$planet->delete();
$response = [
'success' => true,
'message' => "Planeta esborrat",
'data' => $planet,
];
return response()->json($response,200);
}
catch(\Exception $e) {
$response = [
'success' => false,
'message' => "Error esborrant planeta",
];
return response()->json($response,400);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment