Skip to content

Commit

Permalink
Merge pull request #115 from sena-proyectos/LorenRama
Browse files Browse the repository at this point in the history
Client JSDOC added
  • Loading branch information
StivenKN authored Nov 7, 2023
2 parents d4d3b6e + 119c8fa commit 35ac7e2
Show file tree
Hide file tree
Showing 28 changed files with 1,292 additions and 571 deletions.
48 changes: 48 additions & 0 deletions client/src/ProtectedRoute.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@ import { isExpired } from 'react-jwt'
import { Navigate, useLocation } from 'react-router-dom'
import { getPublicTokenFromSession } from './import/getPublicToken'

/**
* @function ProtectedRoute
*
* @description
* Este componente de React se utiliza para proteger rutas en una aplicación. Comprueba la autenticación del usuario y redirige si no está autenticado. Utiliza cookies y tokens para determinar la autenticación.
*
* @param {object} props - Propiedades del componente.
* @param {string} props.redirectTo - Ruta a la que redirigir si no se cumple la autenticación.
* @param {ReactNode} props.children - Elementos hijos a renderizar si la autenticación es exitosa.
* @returns {ReactNode} - Los elementos hijos si la autenticación es exitosa, o una redirección si no se cumple la autenticación.
*
*/
export const ProtectedRoute = ({ redirectTo, children }) => {
const location = useLocation()
const idRol = localStorage.getItem('idRol')
Expand All @@ -18,6 +30,18 @@ export const ProtectedRoute = ({ redirectTo, children }) => {
return children
}

/**
* @function IsLogged
*
* @description
* Este componente de React se utiliza para verificar si un usuario está autenticado y redirigirlo en consecuencia. Comprueba la presencia de un ID de rol y tokens para determinar la autenticación.
*
* @param {object} props - Propiedades del componente.
* @param {string} props.redirectTo - Ruta a la que redirigir si el usuario está autenticado.
* @param {ReactNode} props.children - Elementos hijos a renderizar si el usuario no está autenticado.
* @returns {ReactNode} - Los elementos hijos si el usuario no está autenticado, o una redirección si está autenticado.
*
*/
export const IsLogged = ({ redirectTo, children }) => {
const location = useLocation()
const idRol = localStorage.getItem('idRol')
Expand All @@ -36,6 +60,18 @@ export const IsLogged = ({ redirectTo, children }) => {
return children
}

/**
* @function IsAdminOrCoordinator
*
* @description
* Este componente de React se utiliza para verificar si un usuario tiene el rol de administrador o coordinador. Redirige al usuario si no tiene uno de estos roles.
*
* @param {object} props - Propiedades del componente.
* @param {string} props.redirectTo - Ruta a la que redirigir si el usuario no tiene el rol de administrador o coordinador.
* @param {ReactNode} props.children - Elementos hijos a renderizar si el usuario tiene el rol de administrador o coordinador.
* @returns {ReactNode} - Los elementos hijos si el usuario tiene el rol de administrador o coordinador, o una redirección si no tiene el rol adecuado.
*
*/
export const IsAdminOrCoordinator = ({ redirectTo, children }) => {
const location = useLocation()
const idRol = localStorage.getItem('idRol')
Expand All @@ -47,6 +83,18 @@ export const IsAdminOrCoordinator = ({ redirectTo, children }) => {
return children
}

/**
* @function IsAdmin
*
* @description
* Este componente de React se utiliza para verificar si un usuario tiene el rol de administrador. Redirige al usuario si no tiene este rol.
*
* @param {object} props - Propiedades del componente.
* @param {string} props.redirectTo - Ruta a la que redirigir si el usuario no tiene el rol de administrador.
* @param {ReactNode} props.children - Elementos hijos a renderizar si el usuario tiene el rol de administrador.
* @returns {ReactNode} - Los elementos hijos si el usuario tiene el rol de administrador, o una redirección si no tiene el rol adecuado.
*
*/
export const IsAdmin = ({ redirectTo, children }) => {
const location = useLocation()
const idRol = localStorage.getItem('idRol')
Expand Down
34 changes: 30 additions & 4 deletions client/src/api/httpRequest.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export const GetUsersHttp = async () => {
return response
}

/* OBTENER DETALLES DE UN APRENDIZ POR ID */
export const GetStudentsDetailById = async (userID) => {
const URL = `${baseUrl}${api}/v1/detailInfoStudent/${userID}`
const publicToken = getPublicTokenFromSession()
Expand Down Expand Up @@ -86,6 +87,7 @@ export const GetClassByNumber = async (data) => {
return response
}

/* ENVIAR EMAIL DE ASIGNACION DE FUNCIONES */
export const sendEmailFunctions = async (data) => {
const URL = `${baseUrl}${api}/v1/sendEmail/functions`
const publicToken = getPublicTokenFromSession()
Expand All @@ -94,6 +96,7 @@ export const sendEmailFunctions = async (data) => {
return response
}

/* OBTENER INFORMACION DETALLADA DE LOS APRENDICES */
export const detailInfoStudents = async () => {
const URL = `${baseUrl}${api}/v1/detailInfoStudents`
const publicToken = getPublicTokenFromSession()
Expand All @@ -111,6 +114,7 @@ export const getInscriptions = async () => {
return response
}

/* OBTENER REGISTROS POR ID DEL INSTRUCTOR */
export const getInscriptionsByTeacherId = async (id) => {
const URL = `${baseUrl}${api}/v1/inscriptions/teacher/${id}`
const publicToken = getPublicTokenFromSession()
Expand Down Expand Up @@ -155,6 +159,7 @@ export const inscriptionDetailsUpdate = async (id, payload) => {
return response
}

/* LECTOR DE EXCEL DE LOS REGISTROS */
export const readExcel = async (fileData) => {
const URL = `${baseUrl}${api}/v1/inscription-excel-file`
const publicToken = getPublicTokenFromSession()
Expand Down Expand Up @@ -202,7 +207,7 @@ export const getClassByTeacherId = async (id) => {
return response
}

// OBTENER FICHAS SIN INSTRUCTOR LIDER O SEGUIMIENTO
// OBTENER FICHAS SIN INSTRUCTOR DE SEGUIMIENTO
export const getClassFree = async () => {
const URL = `${baseUrl}${api}/v1/classesFree`
const publicToken = getPublicTokenFromSession()
Expand Down Expand Up @@ -233,6 +238,7 @@ export const getUserById = async (id) => {
}
}

// ENVIA CORREO
export const sendEmail = async (payload) => {
const URL = `${baseUrl}${api}/v1/sendEmail`
const publicToken = getPublicTokenFromSession()
Expand Down Expand Up @@ -268,46 +274,50 @@ export const getClassByLiderTeacherId = async (id) => {
}

// OBTENER MODALIDADES BY ID

export const getModalitiesById = async (id) => {
const URL = `${baseUrl}${api}/v1/practical-stages/${id}`
const publicToken = getPublicTokenFromSession()
const response = await axios.get(URL, { headers: { Authorization: publicToken } })
return response
}

// Obtener inscripcion por nombre
// OBTENER REGISTROS POR NOMBRE
export const GetInscriptionByName = async (data) => {
const URL = `${baseUrl}${api}/v1/inscriptionName?nombreCompleto=${data}`
const publicToken = getPublicTokenFromSession()
const response = await axios.get(URL, { headers: { Authorization: publicToken } })
return response
}

// CREAR UN CURSO
export const createCourse = async (data) => {
const URL = `${baseUrl}${api}/v1/class`
const publicToken = getPublicTokenFromSession()
return await axios.post(URL, data, { headers: { Authorization: publicToken } })
}

// CREAR UN APRENDIZ
export const createStudent = async (data) => {
const URL = `${baseUrl}${api}/v1/create-students`
const publicToken = getPublicTokenFromSession()
return await axios.post(URL, data, { headers: { Authorization: publicToken } })
}

// REGISTRAR UN USUARIO
export const registerUser = async (payload) => {
const URL = `${baseUrl}${api}/v1/register`
const publicToken = getPublicTokenFromSession()
return await axios.post(URL, payload, { headers: { Authorization: publicToken } })
}

// OBTENER INSTRUCTOR POR SU ID
export const getInfoTeacherByID = async (id) => {
const URL = `${baseUrl}${api}/v1/teacher/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.get(URL, { headers: { Authorization: publicToken } })
}

/* Edit User */
/* EDITAR USUARIO */
export const EditUser = async (id, payload) => {
const URL = `${baseUrl}${api}/v1/edit-user/${id}`
const publicToken = getPublicTokenFromSession()
Expand All @@ -316,72 +326,84 @@ export const EditUser = async (id, payload) => {
return response
}

// OBTENER LOS COORDINADORES
export const getCoordinators = async () => {
const URL = `${baseUrl}${api}/v1/coordinators`
const publicToken = getPublicTokenFromSession()
return await axios.get(URL, { headers: { Authorization: publicToken } })
}

// OBTENER EL NOMBRE DEL COORDINADOR POR SU ID
export const getCoordinatorNameByID = async (id) => {
const URL = `${baseUrl}${api}/v1/coordinator/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.get(URL, { headers: { Authorization: publicToken } })
}

// OBTENER CARTAS POR EL ID DE UN APRENDIZ
export const getLettersByStudentID = async (id) => {
const URL = `${baseUrl}${api}/v1/getLetterByStudent/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.get(URL, { headers: { Authorization: publicToken } })
}

// EDITAR CARTAS POR SU ID
export const patchLetterByID = async (id, payload) => {
const URL = `${baseUrl}${api}/v1/modifyLetter/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.patch(URL, payload, { headers: { Authorization: publicToken } })
}

// OBTENER BITACORAS POR EL ID DE UN APRENDIZ
export const getBitacorasByStudentId = async (id) => {
const URL = `${baseUrl}${api}/v1/getBitacorasByStudent/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.get(URL, { headers: { Authorization: publicToken } })
}

// EDITAR BITACORAS POR SU ID
export const patchBitacoraById = async (id, payload) => {
const URL = `${baseUrl}${api}/v1/modifyBitacora/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.patch(URL, payload, { headers: { Authorization: publicToken } })
}

// EDITAR VISITAS POR SU ID
export const patchVisitById = async (id, payload) => {
const URL = `${baseUrl}${api}/v1/modifyVisit/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.patch(URL, payload, { headers: { Authorization: publicToken } })
}

// OBTENER VISITAS POR EL ID DE UN APRENDIZ
export const getVisitsByStudent = async (id) => {
const URL = `${baseUrl}${api}/v1/getVisitsByStudent/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.get(URL, { headers: { Authorization: publicToken } })
}

// OBTENER DATOS DE UNA VISITA POR SU ID
export const getVisitDataById = async (id) => {
const URL = `${baseUrl}${api}/v1/getVisitData/${id}`
const publicToken = getPublicTokenFromSession()
return await axios.get(URL, { headers: { Authorization: publicToken } })
}

// LECTOR DE EXCEL DE CONTRATOS DE APRENDIZAJE
export const sendExcelContrato = async (payload) => {
const URL = `${baseUrl}${api}/v1/read-excel-file/students`
const publicToken = getPublicTokenFromSession()
return await axios.post(URL, payload, { headers: { Authorization: publicToken } })
}

// lECTOR DE EXCEL DE CURSOS
export const sendExcelCourse = async (payload) => {
const URL = `${baseUrl}${api}/v1/read-excel-file/classes`
const publicToken = getPublicTokenFromSession()
return await axios.post(URL, payload, { headers: { Authorization: publicToken } })
}

// GENERA EXCEL POR NUMERO DE FICHA
export const generateExcelClass = async (classNumber) => {
const URL = `${baseUrl}${api}/v1/create-excel-class`
const publicToken = getPublicTokenFromSession()
Expand All @@ -394,6 +416,7 @@ export const generateExcelClass = async (classNumber) => {
})
}

// GENERA EXCEL DE LOS APRENDICES
export const generateExcelStudents = async () => {
const URL = `${baseUrl}${api}/v1/create-excel-students`
const publicToken = getPublicTokenFromSession()
Expand All @@ -403,6 +426,7 @@ export const generateExcelStudents = async () => {
})
}

// CREAR VISITA
export const createVisit = async (payload) => {
const URL = `${baseUrl}${api}/v1/create-visit`
const publicToken = getPublicTokenFromSession()
Expand All @@ -427,6 +451,7 @@ export const editStudentState = async (id, payload) => {
return response
}

// EDITAR CLASES
export const editDateClass = async (payload) => {
const URL = `${baseUrl}${api}/v1/dateClass`
const publicToken = getPublicTokenFromSession()
Expand Down Expand Up @@ -483,6 +508,7 @@ export const generateExcelStudentsByInstructor = async (teacherName) => {
})
}

// OBTENER CLASES DE UN INSTRUCTOR POR EL NUMERO DE FICHA
export const getClassTeacherByClassNumber = async (id, data) => {
const URL = `${baseUrl}${api}/v1/classTeacherNumber/${id}?numero_ficha=${data}`
const publicToken = getPublicTokenFromSession()
Expand Down
Loading

0 comments on commit 35ac7e2

Please sign in to comment.