Giter Club home page Giter Club logo

pret-back's People

Contributors

gandya23 avatar

pret-back's Issues

Crear controlador de IdiomaCandidato

Crear controlador de IdiomaCandidato

Configuración inicial

Entidad

Agregar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter al modelo.

@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}

POJO

Eliminar la anotación @Data y poner en su lugar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter.

+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}

Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.


Ejemplo:

/*** Model.java ***/
@Column(nullable  =  false, length  =  50)
private String nombre;

@Column(nullable  =  true, name  =  "descripcion_perfil", columnDefinition  =  "text null")
private  String  descripcionPerfil;

/*** ModelPojo.java ***/
@NameFormat
@Size(max  =  50)
@NotBlank
private String nombre;

@ParagraphFormat
private String descripcionPerfil;

Notar que existen anotaciones personalizas en la carpeta pret/validator, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil que es un campo de tipo text y se le permite colocar más caracteres que un nombre.

Puedes suponer lo siguiente cuando un campo es obligatorio:

  • String -> @NotBlank y alguna anotación personalizada (si aplica).
  • Boolean -> @NotNull
  • Object -> @NotNull

En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.

ApplicationSecurity.java

Las funciones del controlador que no requieran un JWT, es necesario agregarlas en la configuración.

http
	.authorizeRequests()
	.antMatchers(
		HttpMethod.POST,
		"/auth/login",
		"/candidato/registrar",
		"/reclutador/registrar"
		// Agregar aquí si usa @PostMapping
	).permitAll()
	.antMatchers(
		HttpMethod.GET,
		"/beneficio/**",
		"/estado-republica/**",
		"/estado-vacante/**",
		"/idioma/**",
		"/puesto/**",
		"/universidad/**"
		// Agregar aquí si usa @GetMapping
	).permitAll()
	.anyRequest().authenticated()

Controlador

Puedes revisar los controladores ya creados dentro del proyecto.

guardar (POST)

  • Requiere enviar un JWT

  • Consultar el candidato desde el JWT con su id, ya existe en CandidatoController.java una manera de consultar el usuario desde el token.

  • Parámetros

    • IdiomaCandidatoPojo
  • Respuesta

    • IdiomaCandidatoPojo con la información almacenada en base de datos.

eliminar (DELETE)

  • Requiere enviar un JWT

  • Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del JWT y el id cuando se consulta el estudio antes de eliminar.

  • Parámetros

    • IdiomaCandidatoPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
  • Respuesta

    • IdiomaCandidatoPojo con la información almacenada en base de datos.

Crear controlador de ExperienciaLaboral

Crear controlador de ExperienciaLaboral

Configuración inicial

Entidad

Agregar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter al modelo.

@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}

POJO

Eliminar la anotación @Data y poner en su lugar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter.

+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}

Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.


Ejemplo:

/*** Model.java ***/
@Column(nullable  =  false, length  =  50)
private String nombre;

@Column(nullable  =  true, name  =  "descripcion_perfil", columnDefinition  =  "text null")
private  String  descripcionPerfil;

/*** ModelPojo.java ***/
@NameFormat
@Size(max  =  50)
@NotBlank
private String nombre;

@ParagraphFormat
private String descripcionPerfil;

Notar que existen anotaciones personalizas en la carpeta pret/validator, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil que es un campo de tipo text y se le permite colocar más caracteres que un nombre.

Puedes suponer lo siguiente cuando un campo es obligatorio:

  • String -> @NotBlank y alguna anotación personalizada (si aplica).
  • Boolean -> @NotNull
  • Object -> @NotNull

En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.

ApplicationSecurity.java

Las funciones del controlador que no requieran un JWT, es necesario agregarlas en la configuración.

http
	.authorizeRequests()
	.antMatchers(
		HttpMethod.POST,
		"/auth/login",
		"/candidato/registrar",
		"/reclutador/registrar"
		// Agregar aquí si usa @PostMapping
	).permitAll()
	.antMatchers(
		HttpMethod.GET,
		"/beneficio/**",
		"/estado-republica/**",
		"/estado-vacante/**",
		"/idioma/**",
		"/puesto/**",
		"/universidad/**"
		// Agregar aquí si usa @GetMapping
	).permitAll()
	.anyRequest().authenticated()

Controlador

Puedes revisar los controladores ya creados dentro del proyecto.

guardar (POST)

  • Requiere enviar un JWT

  • Consultar el candidato desde el JWT con su id, ya existe en CandidatoController.java una manera de consultar el usuario desde el token.

  • Parámetros

    • ExperienciaLaboralPojo
  • Respuesta

    • ExperienciaLaboralPojo con la información almacenada en base de datos.

actualizar (POST)

  • Requiere enviar un JWT

  • Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del JWT y el id cuando se consulta el estudio antes de actualizar.

  • Parámetros

    • ExperienciaLaboralPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
  • Respuesta

    • ExperienciaLaboralPojo con la información almacenada en base de datos.

eliminar (DELETE)

  • Requiere enviar un JWT

  • Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del JWT y el id cuando se consulta el estudio antes de eliminar.

  • Parámetros

    • ExperienciaLaboralPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
  • Respuesta

    • ExperienciaLaboralPojo con la información almacenada en base de datos.

Crear controllers de clases tipo Catalogo

Crear los controladores de las siguientes clases de tipo Catalogo:

  • EstadoRepublica
  • EstadoVacante
  • Idioma
  • Puesto
  • Rol
  • Universidad

Pasos para crear el controlador de las clases de tipo Catalogo

  1. Agrega las anotaciones @NoArgsConstructor y @AllArgsConstructor a la entidad y clase POJO que vas a crear el controlador.

Ejemplo:

@Entity
@Table(name = "beneficios")
@NoArgsConstructor
@AllArgsConstructor
public class Beneficio extends Catalogo {}
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BeneficioPojo extends CatalogoPojo {}
  1. Crea un nuevo archivo controlador.

Para crear este archivo controlador, puedes basarte en el archivo BeneficioController.java, incluso es posible copiar y pegar su contenido para crear tu controlador.
Debes de adaptar todos los textos del título dependiendo el nombre de la entidad y también cambiar los nombres de las clases de Beneficio por la entidad.

Crear controlador de Curso

Crear controlador de Curso

Configuración inicial

Entidad

Agregar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter al modelo.

@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}

POJO

Eliminar la anotación @Data y poner en su lugar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter.

+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}

Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.


Ejemplo:

/*** Model.java ***/
@Column(nullable  =  false, length  =  50)
private String nombre;

@Column(nullable  =  true, name  =  "descripcion_perfil", columnDefinition  =  "text null")
private  String  descripcionPerfil;

/*** ModelPojo.java ***/
@NameFormat
@Size(max  =  50)
@NotBlank
private String nombre;

@ParagraphFormat
private String descripcionPerfil;

Notar que existen anotaciones personalizas en la carpeta pret/validator, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil que es un campo de tipo text y se le permite colocar más caracteres que un nombre.

Puedes suponer lo siguiente cuando un campo es obligatorio:

  • String -> @NotBlank y alguna anotación personalizada (si aplica).
  • Boolean -> @NotNull
  • Object -> @NotNull

En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.

ApplicationSecurity.java

Las funciones del controlador que no requieran un JWT, es necesario agregarlas en la configuración.

http
	.authorizeRequests()
	.antMatchers(
		HttpMethod.POST,
		"/auth/login",
		"/candidato/registrar",
		"/reclutador/registrar"
		// Agregar aquí si usa @PostMapping
	).permitAll()
	.antMatchers(
		HttpMethod.GET,
		"/beneficio/**",
		"/estado-republica/**",
		"/estado-vacante/**",
		"/idioma/**",
		"/puesto/**",
		"/universidad/**"
		// Agregar aquí si usa @GetMapping
	).permitAll()
	.anyRequest().authenticated()

Controlador

Puedes revisar los controladores ya creados dentro del proyecto.

guardar (POST)

  • Requiere enviar un JWT de candidato

  • Consultar el candidato desde el JWT con su id, ya existe en CandidatoController.java una manera de consultar el usuario desde el token.

  • Parámetros

    • CursoPojo
  • Respuesta

    • CursoPojo con la información almacenada en base de datos.

eliminar (DELETE)

  • Requiere enviar un JWT de candidato

  • Verificar si el curso pertenece al Candidato comparando el Id que viene dentro del JWT y el id cuando se consulta el curso antes de eliminar.

  • Parámetros

    • CursoPojo ID @PathVariable
  • Respuesta

    • CursoPojo con la información almacenada en base de datos.

obtener por candidato (GET)

  • Obtener todos los cursos de un candidato.

  • Respuesta

    • Lista de CursoPojo.

Crear controlador de Estudio

Crear controlador de Estudio

Configuración inicial

Entidad

Agregar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter al modelo.

@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}

POJO

Eliminar la anotación @Data y poner en su lugar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter.

+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}

Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.


Ejemplo:

/*** Model.java ***/
@Column(nullable  =  false, length  =  50)
private String nombre;

@Column(nullable  =  true, name  =  "descripcion_perfil", columnDefinition  =  "text null")
private  String  descripcionPerfil;

/*** ModelPojo.java ***/
@NameFormat
@Size(max  =  50)
@NotBlank
private String nombre;

@ParagraphFormat
private String descripcionPerfil;

Notar que existen anotaciones personalizas en la carpeta pret/validator, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil que es un campo de tipo text y se le permite colocar más caracteres que un nombre.

Puedes suponer lo siguiente cuando un campo es obligatorio:

  • String -> @NotBlank y alguna anotación personalizada (si aplica).
  • Boolean -> @NotNull
  • Object -> @NotNull

En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.

ApplicationSecurity.java

Las funciones del controlador que no requieran un JWT, es necesario agregarlas en la configuración.

http
	.authorizeRequests()
	.antMatchers(
		HttpMethod.POST,
		"/auth/login",
		"/candidato/registrar",
		"/reclutador/registrar"
		// Agregar aquí si usa @PostMapping
	).permitAll()
	.antMatchers(
		HttpMethod.GET,
		"/beneficio/**",
		"/estado-republica/**",
		"/estado-vacante/**",
		"/idioma/**",
		"/puesto/**",
		"/universidad/**"
		// Agregar aquí si usa @GetMapping
	).permitAll()
	.anyRequest().authenticated()

Controlador

Puedes revisar los controladores ya creados dentro del proyecto.

guardar (POST)

  • Requiere enviar un JWT

  • Consultar el candidato desde el JWT con su id, ya existe en CandidatoController.java una manera de consultar el usuario desde el token.

  • Parámetros

    • EstudioPojo
  • Respuesta

    • EstudioPojo con la información almacenada en base de datos.

actualizar (POST)

  • Requiere enviar un JWT

  • Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del JWT y el id cuando se consulta el estudio antes de actualizar.

  • Parámetros

    • EstudioPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
  • Respuesta

    • EstudioPojo con la información almacenada en base de datos.

eliminar (DELETE)

  • Requiere enviar un JWT

  • Verificar si el estudio pertenece al Candidato comparando el Id que viene dentro del JWT y el id cuando se consulta el estudio antes de eliminar.

  • Parámetros

    • EstudioPojo (es obligatorio que dentro venga con su id para saber que estudio actualizar)
  • Respuesta

    • EstudioPojo con la información almacenada en base de datos.

Pojo Classes

Crear clases Pojo para la transacción de datos entre el front-end y back-end.

Agregar el campo de habilitado al modelo de Usuario

Al modelo de usuario le hace falta el campo de habilitado, este campo es necesario para cuando se implemente el inicio de sesión mediante tokens.

Este campo debe de ir debajo del campo de contraseña, debe de ser booleano y por defecto (por el momento, quizás esto cambie en el futuro) dejaremos como valor default 1, osea que se encuentre activado desde un principio.

Entidades

Crear las entidades que ayudaran a crear la base de datos.

Crear controlador de Vacante

Crear controlador de Vacante

Configuración inicial

Entidad

Agregar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter al modelo.

@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}

POJO

Eliminar la anotación @Data y poner en su lugar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter.

+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}

Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.


Ejemplo:

/*** Model.java ***/
@Column(nullable  =  false, length  =  50)
private String nombre;

@Column(nullable  =  true, name  =  "descripcion_perfil", columnDefinition  =  "text null")
private  String  descripcionPerfil;

/*** ModelPojo.java ***/
@NameFormat
@Size(max  =  50)
@NotBlank
private String nombre;

@ParagraphFormat
private String descripcionPerfil;

Notar que existen anotaciones personalizas en la carpeta pret/validator, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil que es un campo de tipo text y se le permite colocar más caracteres que un nombre.

Puedes suponer lo siguiente cuando un campo es obligatorio:

  • String -> @NotBlank y alguna anotación personalizada (si aplica).
  • Boolean -> @NotNull
  • Object -> @NotNull

En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.

ApplicationSecurity.java

Las funciones del controlador que no requieran un JWT, es necesario agregarlas en la configuración.

http
	.authorizeRequests()
	.antMatchers(
		HttpMethod.POST,
		"/auth/login",
		"/candidato/registrar",
		"/reclutador/registrar"
		// Agregar aquí si usa @PostMapping
	).permitAll()
	.antMatchers(
		HttpMethod.GET,
		"/beneficio/**",
		"/estado-republica/**",
		"/estado-vacante/**",
		"/idioma/**",
		"/puesto/**",
		"/universidad/**"
		// Agregar aquí si usa @GetMapping
	).permitAll()
	.anyRequest().authenticated()

Controlador

Puedes revisar los controladores ya creados dentro del proyecto.

guardar (POST)

  • Requiere enviar un JWT de reclutador

  • Consultar el reclutador desde el JWT con su id, ya existe en ReclutadorController.java una manera de consultar el usuario desde el token.

  • Parámetros

    • VacantePojo
  • Respuesta

    • VacantePojo con la información almacenada en base de datos.

actualizar (POST)

  • Requiere enviar un JWT de reclutador

  • Verificar si el vacante pertenece al Reclutador comparando el Id que viene dentro del JWT y el id cuando se consulta el vacante antes de actualizar.

  • Parámetros

    • VacantePojo (es obligatorio que dentro venga con su id para saber que vacante actualizar)
  • Respuesta

    • VacantePojo con la información almacenada en base de datos.

eliminar (DELETE)

  • Requiere enviar un JWT de reclutador

  • Verificar si el vacante pertenece al Reclutador comparando el Id que viene dentro del JWT y el id cuando se consulta el vacante antes de eliminar.

  • Parámetros

    • VacantePojo (es obligatorio que dentro venga con su id para saber que vacante eliminar)
  • Respuesta

    • VacantePojo con la información almacenada en base de datos.

obtener (GET)

  • Obtener todas las vacantes disponibles.

  • Respuesta

    • Lista de VacantePojo que se encuentren disponibles, ordenadas primero a las más actuales.

obtenerPorReclutador (GET)

  • Obtener todas las vacantes que tiene un reclutador.

  • Requiere enviar un JWT de reclutador

  • Respuesta

    • Lista de VacantePojo que se encuentren disponibles, ordenadas primero a las más actuales.

compartirVacante (POST)

  • Requiere enviar un JWT de candidato

  • Parámetros

    • Id de una vacante
    • Id de un candidato
  • Acción

    • Enviar un correo electrónico al candidato con la información de la vacante

listaCandidatos (GET)

  • Requiere enviar un JWT de reclutador

  • Retornar la lista de candidatos filtrados por estado de Vacante.

  • Parámetros

    • Id de una vacante
  • Retorno: Objeto con tres listas de candidatos

    • rechazados: Candidatos que han sido rechazados para la vacante
    • idóneos: Candidato que se consideran idóneos para la vacante
    • otros: Candidatos con otros estados

Crear controlador de Certificación

Crear controlador de Certificacion

Configuración inicial

Entidad

Agregar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter al modelo.

@Entity
@Table(name = "modelos")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
public class Modelo {}

POJO

Eliminar la anotación @Data y poner en su lugar las anotaciones @AllArgsConstructor, @NoArgsConstructor, @Getter y @Setter.

+@Getter @Setter
@NoArgsConstructor @AllArgsConstructor
public class ModelPojo {}

Agregar anotaciones dependiendo las reglas que existan en los campos de base de datos.


Ejemplo:

/*** Model.java ***/
@Column(nullable  =  false, length  =  50)
private String nombre;

@Column(nullable  =  true, name  =  "descripcion_perfil", columnDefinition  =  "text null")
private  String  descripcionPerfil;

/*** ModelPojo.java ***/
@NameFormat
@Size(max  =  50)
@NotBlank
private String nombre;

@ParagraphFormat
private String descripcionPerfil;

Notar que existen anotaciones personalizas en la carpeta pret/validator, es probable que algunas anotaciones puedan usarse en ciertos campos, como por ejemplo la descripcionPerfil que es un campo de tipo text y se le permite colocar más caracteres que un nombre.

Puedes suponer lo siguiente cuando un campo es obligatorio:

  • String -> @NotBlank y alguna anotación personalizada (si aplica).
  • Boolean -> @NotNull
  • Object -> @NotNull

En caso de tener dudas, checar los la aplicación en los POJOs los cuales ya cuentan con un controlador.

ApplicationSecurity.java

Las funciones del controlador que no requieran un JWT, es necesario agregarlas en la configuración.

http
	.authorizeRequests()
	.antMatchers(
		HttpMethod.POST,
		"/auth/login",
		"/candidato/registrar",
		"/reclutador/registrar"
		// Agregar aquí si usa @PostMapping
	).permitAll()
	.antMatchers(
		HttpMethod.GET,
		"/beneficio/**",
		"/estado-republica/**",
		"/estado-vacante/**",
		"/idioma/**",
		"/puesto/**",
		"/universidad/**"
		// Agregar aquí si usa @GetMapping
	).permitAll()
	.anyRequest().authenticated()

Controlador

Puedes revisar los controladores ya creados dentro del proyecto.

guardar (POST)

  • Requiere enviar un JWT de candidato

  • Consultar el candidato desde el JWT con su id, ya existe en CandidatoController.java una manera de consultar el usuario desde el token.

  • Parámetros

    • CertificacionPojo
  • Respuesta

    • CertificacionPojo con la información almacenada en base de datos.

eliminar (DELETE)

  • Requiere enviar un JWT de candidato

  • Verificar si el certificacion pertenece al Candidato comparando el Id que viene dentro del JWT y el id cuando se consulta el certificacion antes de eliminar.

  • Parámetros

    • CertificacionPojo ID @PathVariable
  • Respuesta

    • CertificacionPojo con la información almacenada en base de datos.

obtener por candidato (GET)

  • Obtener todos los certificaciones de un candidato.

  • Respuesta

    • Lista de CertificacionPojo.

Crear controller de ejemplo para catalogos

Este controlador ayudará como template para crear los demás controladores para las tablas que funcionan como catálogos.
Configurar en el application.properties de ejemplo para que la ruta default inicie con /api

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.