Creación de modulo para prueba técnica.
Para desplegar el proyecto, puedes utilizar cualquier herramienta o servidor en el que puedas instalar los siguientes requisitos:
- PHP: Instrucciones de instalación
- Composer: Instrucciones de instalación para la instalación de drupal y la admnistración de sus dependencias
En este caso, utilizare lando para desplegar el proyecto:
/** Para instalaciones desde cero de drupal con lando validar la documentación*/
Lando es una herramienta que nos permite montar entornos de desarrollo local y facilita la configuración y gestión de contenedores Docker, lo que nos permite montar nuestro proyecto en cuestión de minutos.
Para instalar Lando, puedes seguir las indicaciones de la documentación oficial: Instalación de Lando
Pasos para desplegar el proyecto:
- Clonar el proyecto desde el repositorio.
git clone https://github.com/jpcastro98/example_module.git - Validar la configuración en el archivo
.lando.ymly asegurarse de que sea correcta. En caso de ser necesario, crear el archivo con la configuración adecuada. Por ejemplo:
name: exampemodule
recipe: drupal9
config:
webroot: web
xdebug: true
config:
php: .vscode/php.ini
- Ejecutar el comando
lando startpara iniciar el contenedor. - Ejecutar
lando composer installpara instalar las dependencias del proyecto. - Ejecutar el comando
lando infopara obtener las credenciales de la base de datos. Crear y configurar el archivo$settings.local.phppara entornos locales basado en el$settings.phpcon las credenciales correspondientes. - Ejecutar
lando drush en example_moduleylando drush en example_module_restpara instalar los modulos, tener en cuenta las dependecias y si es necesario instalarlas antes de instalar el modulo.
Estos pasos te permitirán desplegar el proyecto utilizando Lando.
/example-module/form Mediante el APIForm de drupal Se creo el formulario para registrar usuarios, el formulario funciona mediante el envió de ajax, también se creo un template twig custom para mostrar el formulario y se le aplicaron estilos.
Los datos registrados en este formulario se guardan en la tabla example_users que se crea cuando se instala el modulo.
/example-module/data Mediante un controlador vamos a mostrar en esta ruta los datos registrados en el formulario visitado anteriormente.
El ExampleService, es el servicio que nos permite consultar y almacenar los datos en la base de datos.
Para los cargos al instalar el modulo mediante el hook_install se crea una taxonomía (Positions) en la cual también se crean 3 terminos por defecto que son los cargos relacionados en la prueba, esto con el fin de que sead administrables y se puedan agregar más cargos en un futuro.
Se creo un modulo REST, que tiene como dependencias los siguientes modulos que son necesarios instalar:
- drupal/restui: drupal/restui
-example_module
-rest
-restui
-user
si se cuenta con el modulo restui activar el api ExampleRest en su configuración.
admin/config/services/rest/resource/example_module_rest/edit
Y activar sus permisos en :
admin/people/permissions#module-rest
la rutas para consultar la api es
- GET,PATCH,DELETE
'/api/example-module-rest/{id}'.
- POST
'/api/example-module-rest/{id}'.
Para hacer peticiones POST o PATCH sólo se aceptan los campos propuestos en la prueba ejemplo:
{
'name':'Prueba',
'identification':123456789,
'birthdate': 1998-07-06',
'position_id':'1'
}