8000 add new enpoints and bug fixes · thaivanan/Laravel-API-Server@8d1109f · GitHub
[go: up one dir, main page]

Skip to content

Commit 8d1109f

Browse files
committed
add new enpoints and bug fixes
1 parent 6b25003 commit 8d1109f

File tree

4 files changed

+149
-3
lines changed

4 files changed

+149
-3
lines changed

app/Http/Controllers/JuegoController.php

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,74 @@ public function index()
4747
return response()->json(JuegoResource::collection(($juegos)), 200);
4848
}
4949

50+
/**
51+
* @OA\Get(
52+
* path="/api/juegos/paginate",
53+
* tags={"Juegos"},
54+
* summary="Obtener los juegos por una paginación de X elementos",
55+
* description="Muestra los juegos a través de una paginación",
56+
* operationId="getPaginateJuegos",
57+
* @OA\Parameter(
58+
* name="page",
59+
* description="Numero de la paginación",
60+
* in="query",
61+
* required=false,
62+
* @OA\Schema(
63+
* type="integer",
64+
* example="2"
65+
* ),
66+
* ),
67+
* @OA\Parameter(
68+
* name="items",
69+
* description="Numero de juegos por página",
70+
* in="query",
71+
* required=true,
72+
* @OA\Schema(
73+
* type="integer",
74+
* example="8"
75+
* ),
76+
* ),
77+
* @OA\Response(response=200, description="Success"),
78+
* @OA\Response(response=401, description="No autorizado"),
79+
* @OA\Response(response=500, description="Error interno del servidor")
80+
* )
81+
*
82+
*/
83+
public function paginate(Request $request)
84+
{
85+
$juegos = Juego::orderBy('id', 'DESC')->paginate($request->input('items'));
86+
return response()->json(JuegoResource::collection(($juegos)), 200);
87+
}
88+
89+
/**
90+
* @OA\Get(
91+
* path="/api/juegos/random",
92+
* tags={"Juegos"},
93+
* summary="Obtener una lista de X juegos aleatorios",
94+
* description="Muestra el resultado de X juegos de forma aleatoria",
95+
* operationId="getRandomJuegos",
96+
* @OA\Parameter(
97+
* name="items",
98+
* description="Numero de juegos",
99+
* in="query",
100+
* required=true,
101+
* @OA\Schema(
102+
* type="integer",
103+
* example="6"
104+
* ),
105+
* ),
106+
* @OA\Response(response=200, description="Success"),
107+
* @OA\Response(response=401, description="No autorizado"),
108+
* @OA\Response(response=500, description="Error interno del servidor")
109+
* )
110+
*
10000 111+
*/
112+
public function random(Request $request)
113+
{
114+
$juegos = Juego::all()->random($request->input('items'));
115+
return response()->json(JuegoResource::collection(($juegos)), 200);
116+
}
117+
50118
/**
51119
* @OA\Post(
52120
* path="/api/juegos",

app/Models/Juego.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public function validation_add($request)
5454
'fecha' => 'required|date_format:Y-m-d',
5555
'generos' => 'required|array|between:1,5',
5656
'generos.*' => 'required|distinct|exists:generos,slug',
57-
'imagen' => 'required|mimes:jpg,jpeg,png|max:1024|',
57+
'imagen' => 'required|mimes:jpg,jpeg,png|max:4096|',
5858
]);
5959

6060
return $validator;
@@ -76,7 +76,7 @@ public function validation_update($request, $nombre)
7676
'fecha' => 'nullable|date_format:Y-m-d',
7777
'generos' => 'nullable|array|between:1,5',
7878
'generos.*' => 'nullable|distinct|exists:generos,slug',
79-
'imagen' => 'required|mimes:jpg,jpeg,png|max:1024|',
79+
'imagen' => 'required|mimes:jpg,jpeg,png|max:4096|',
8080
]);
8181

8282
return $validator;
@@ -193,7 +193,7 @@ public function exists_id_update_without_image($id_juego, $request)
193193
$slug_antiguo = $request->input('slug');
194194
$request->request->add(['slug' => $slug]);
195195
//Cambiar el nombre del archivo
196-
$id = $this->where('slug', $request->input('slug'))->first()->id;
196+
$id = $this->where('slug', $slug_antiguo)->first()->id;
197197
}
198198

199199
if($request->input('desarrolladora') != null) {

routes/api.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
Route::prefix('juegos')->group(function () {
2626
Route::get('/', [JuegoController::class, 'index'])->name('getAllJuegos');
27+
Route::get('/paginate', [JuegoController::class, 'paginate'])->name('getPaginateJuegos');
28+
Route::get('/random', [JuegoController::class, 'random'])->name('getRandomJuegos');
2729
Route::post('/', [JuegoController::class, 'store'])->name('addJuego')->middleware('auth:sanctum');
2830
Route::get('{slug}', [JuegoController::class, 'show'])->name('getJuego');
2931
Route::post('/edit', [JuegoController::class, 'update'])->name('editJuego')->middleware('auth:sanctum');

storage/api-docs/api-docs.json

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,82 @@
342342
]
343343
}
344344
},
345+
"/api/juegos/paginate": {
346+
"get": {
347+
"tags": [
348+
"Juegos"
349+
],
350+
"summary": "Obtener los juegos por una paginación de X elementos",
351+
"description": "Muestra los juegos a través de una paginación",
352+
"operationId": "getPaginateJuegos",
353+
"parameters": [
354+
{
355+
"name": "page",
356+
"in": "query",
357+
"description": "Numero de la paginación",
358+
"required": false,
359+
"schema": {
360+
"type": "integer",
361+
"example": "2"
362+
}
363+
},
364+
{
365+
"name": "items",
366+
"in": "query",
367+
"description": "Numero de juegos por página",
368+
"required": true,
369+
"schema": {
370+
"type": "integer",
371+
"example": "8"
372+
}
373+
}
374+
],
375+
"responses": {
376+
"200": {
377+
"description": "Success"
378+
},
379+
"401": {
380+
"description": "No autorizado"
381+
},
382+
"500": {
383+
"description": "Error interno del servidor"
384+
}
385+
}
386+
}
387+
},
388+
"/api/juegos/random": {
389+
"get": {
390+
"tags": [
391+
"Juegos"
392+
],
393+
"summary": "Obtener una lista de X juegos aleatorios",
394+
"description": "Muestra el resultado de X juegos de forma aleatoria",
395+
"operationId": "getRandomJuegos",
396+
"parameters": [
397+
{
398+
"name": "items",
399+
"in": "query",
400+
"description": "Numero de juegos",
401+
"required": true,
402+
"schema": {
403+
"type": "integer",
404+
"example": "6"
405+
}
406+
}
407+
],
408+
"responses": {
409+
"200": {
410+
"description": "Success"
411+
},
412+
"401": {
413+
"description": "No autorizado"
414+
},
415+
"500": {
416+
"description": "Error interno del servidor"
417+
}
418+
}
419+
}
420+
},
345421
"/api/juegos/{slug}": {
346422
"get": {
347423
"tags": [

0 commit comments

Comments
 (0)
0