Skip to content

alucardsam/api-monoma

Repository files navigation

Laravel Logo

Prueba técnica - MONOMA

Proceso de instalación y ejecución de este proyecto:

  1. Clonar el repositorio o descomprimir el archivo zip del proyecto.
  2. Ingresar al directorio root del proyecto para renombrar el archivo .env.example por .env y asi cargar todas las configuraciones del proyecto.
  3. Abrir el proyecto en una terminal, para ejecutar los siguientes comandos.
  4. Ejecutar el siguiente comando para descargar todas las dependencias utilizadas en este proyecto, es necesario el gestor de paquetes llamado Composer.
composer install
  1. Ejecutar el siguiente comando para revisar la lista de todas las rutas (endpoint's) de la api.
php artisan route:list --path=api
  1. Ejecutar el siguiente comando para realizar todas las migraciones y cargar los seeders para ejecutar las pruebas del proyecto.

Desde la consola

php artisan migrate:fresh --seed
  1. Ejecutar el siguiente comando para revisar el test unitario.

Desde la consola

php artisan test --without-tty
  1. Ejecutar el siguiente comando para habilitar el servidor de laravel.

Desde la consola

php artisan serve
  1. Utilizar un cliente REST para revisar los endpoint's; se puede utilizar la herramienta llamada Postman.

Endpoints

  • POST URL_SERVER/api/auth para obtener el token (JWT).
  • GET URL_SERVER/api/leads para obtener la lista de candidatos.
  • GET URL_SERVER/api/lead/{id} para obtener un candidato.
  • POST URL_SERVER/api/lead para crear un candidato.
  1. Opcional: Dentro las extensiones de VSCode existe la herramienta llamada RESTClient; con dicha extensión se puede hacer uso de los 4 archivos por endpoint dentro del directorio llamado api-request que se encuentra en la raiz del proyecto.

En cada archivo *.rest es necesario cargar el body o token (JWT) requerido:

  • Archivo POST_auth_login.rest para obtener el token (JWT).
  • Archivo GET_leads_index.rest para obtener la lista de candidatos.
  • Archivo GET_lead_show.rest para obtener un candidato.
  • Archivo POST_lead_create.rest para crear un candidato.

Archivos creados para este proyecto

api-request

  • POST_auth_login.rest
  • GET_leads_index.rest
  • GET_lead_show.rest
  • POST_lead_create.rest

app/Http/Controllers

  • UsuarioController.php
  • CandidatoController.php
  • JWTController.php

app/Http/Middleware

  • CheckRole.php
  • CheckJWT.php

app/Http/Requests

  • UsuarioLoginRequest.php
  • CandidatoCreateRequest.php

app/Http/Resources

  • MetaTrueResource.php
  • MetaFalseResource.php
  • CandidatoCollection.php
  • CandidatoResource.php

app/Interfaces

  • RepositoryInterface.php

app/Models

  • Usuario.php
  • Candidato.php

app/Repositories

  • Repository.php

database/factories

  • UsuarioFactory.php
  • CandidatoFactory.php

database/migrations

  • 2023_10_27_021853_create_usuarios_table.php
  • 2023_10_27_021854_create_candidatos_table.php
  • 2023_10_27_135021_create_permission_tables.php

database/seeders

  • UsuarioSeeder.php
  • CandidatoSeeder.php
  • RolesPermisosSeeder.php

tests/Feature/Http/Controllers

  • UsuarioControllerTest.php
  • CandidatoControllerTest.php

Archivos editados para este proyecto

app/Exceptions

  • Handler.php (Formato de response con base a MetaFalseResource.php)

app/Http

  • Kernel.php (Se agregaron 2 middlewware: checkJWT y CheckRole)

app/Providers

  • AppServiceProvider.php (Se agregaron los archivos para el repository pattern RepositoryInterface.php y Repository.php)

routes

  • web.php (Se borraron las rutas)
  • api.php (Se crearon los 4 endpoints para la api)

Elaborado por

Ing. Samuel Adrián González González.

About

Prueba técnica - MONOMA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published