OR - CMS
Manejo de contenido para la OR
Seguridad ¶
Procesos para ingresar en la aplicación, verificar estado y otros relacionados con seguridad
Verificar el login ¶
Se verifica que las credenciales del usuario son válidas
loginPOST/security/login{?usr,pwd}
Example URI
- usr
required string(required)usuario que se loggea
- pwd
required string(required)password utilizado ya en formato MD5
200Headers
Content-Type: application/jsonBody
{
"id": 1,
"sessionid": "ABSKJDJHKDJHSKJDHKJHKJ",
"validthru": "20190405205812", // (Formato yymmddhhmmss)
"name": "Usuario de Prueba"
}400Headers
Content-Type: application/jsonBody
{
"msg": "Error en la llamada del servicio"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Clave inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Error inteno"
}Recupera clave del usuario ¶
Se valida que el correo enviado exista como un usuario y se le envia un correo con el link al formulario de cambio de clave. El link debe enviarse con unhash almacenado en sessionid
forgotPOST/security/forgot{?email}
Example URI
required string(required)cadena con formato valido de correo
200Headers
Content-Type: application/jsonBody
{
"email": "xxxx@xxxxx.com"
}401Headers
Content-Type: application/jsonBody
{
"msg": "No tenemos ningún usuario registrado con ese email"
}500Headers
Content-Type: application/jsonBody
{
"msg": "error retornado al programador desde mysql_error()"
}Cambio de la clave del usuario ¶
Se procede a cambiar la la clave del usuario cuyo email y sessionid coincidan. El pwd viene en MD5
recoverPOST/security/recover{?hash,pwd}
Example URI
- hash
required string(required)hash enviado al correo
- pwd
required string(required)nuevo password (MD5) Se graba directamente como viene El password solo puede tener estos caracteres {a-zA-Z0-9_-#$}
200Headers
Content-Type: application/jsonBody
{
"msg": "Contraseña cambiada satisfactoriamente"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Hash incorrecto"
}500Headers
Content-Type: application/jsonBody
{
"msg": "error retornado al programador desde mysql_error()"
}Cerrar Sesión ¶
Se blanquea el user.sessionid y se registra la salida en users.validthru = NULL
logoutPOST/security/logout{?sessionid}
Example URI
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id": 0
}400Headers
Content-Type: application/jsonBody
{
"msg": "Error en la llamada del servicio"
}401Headers
Content-Type: application/jsonBody
{
"msg": "id/session incorrectos"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Error inteno"
}Auditoria - Usuarios ¶
Este servicio obtiene una lista de los usuarios registrados en la auditoría
uersPOST/security/audit/users{?filter,sessionid}
Example URI
- filter
optional string(required)busca por el nombre del usuario en la auditoría
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"usr": "pedro@correo.com",
"name": "Pedro Pérez",
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Auditoria - Módulos ¶
Este servicio obtiene una lista de los módulos registrados en la auditoría
modulesPOST/security/audit/modules{?filter,sessionid}
Example URI
- filter
optional string(required)busca por el nombre del módulo
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"name": "Seguridad",
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Auditoria ¶
Este servicio obtiene una lista de los registros de auditoría
listPOST/security/audit/list{?filter,module,user,from,to,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por la desripción del evento
- module
optional string(required)Módulo a filtrar
- user
optional string(required)Identificador del Usuario a Filtrar (Normalmente un correo) Enviar “Internal” para ver los del sistema
- from
optional number(required)Fecha desde la que se mostrarán los registros (Formato YYYY-MM-DD)
- to
optional number(required)Fecha hasta la que se mostrarán los registros (Formato YYYY-MM-DD)
- order
required number(required)1=fecha de creacion, 2=Módulo, 3=descripción, 4=usuario (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"date": {
"date": "2024-01-01 23:45:32",
"formatted": "01/01/2024 11:45 PM"
},
"module": "Seguridad",
"user": {
"usr": "usuario@correo.com",
"name": "Pedro Perez",
},
"dsc": "xxxxxxxxxxxxx"
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Menús ¶
Servicios relacionados con los menús del sistema
Obtener Listado ¶
Este servicio obtiene una lista de los menús existentes ordenados por el campo orden
listPOST/menus/list{?sessionid}
Example URI
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"options": [
{
"id": 1,
"dsc": "Información",
"content": "main",
"access": true,
"submenu": []
},
{
"id": 2,
"dsc": "Lugares",
"content": "transac",
"access": true,
"submenu": [
{
"id": 5,
"dsc": "Opcion 1",
"content": "opc1",
"access": true,
"submenu": []
},
{
"id": 6,
"dsc": "Opcion 2",
"content": "opc2",
"access": true,
"submenu": []
},
]
},
{
"id": 3,
"dsc": "Usuarios",
"content": "users",
"access": true,
"submenu": []
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Geografía ¶
Servicios relacionados con direcciones y ubicaciones
Listado de Regiones ¶
Este servicio obtiene una lista de los regiones existentes
listPOST/addresses/regions/list{?filter,statusid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- statusid
optional number(required)filtra por el estatus 0=Todos, 1=Solo Activos, 2=Solo Inactivos
- order
required number(required)1=id, 2=nombre, 3=status (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Países Iberoamericanos",
"status": {
"id": 1,
"dsc": "Activa"
},
"activecountries": 2
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Una Región ¶
Este servicio obtiene una rgión en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/addresses/regions/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador de la región
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"name": "Países Iberoamericanos",
"status": {
"id": 1,
"dsc": "Activa"
},
"countries": [
{
"id": 1,
"name": "Venezuela"
"assigned": true
},
...
]
},
...
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar una Región ¶
Este servicio permitirá incluir o modificar una región
updatePOST/addresses/regions/update{?id,name,status,countryids,sessionid}
Example URI
- id
required number(required)Identificador de la región. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre del Estado [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- status
required number(required)1=activo, 0=inactivo
- countryids
required string(required)identificadores de los píses que pertenecen a la región separados por guiones (Ej “1-2-3”)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Región ¶
Permite eliminar una región determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/addresses/regions/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador de la región que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Países ¶
Este servicio obtiene una lista de los países existentes
listPOST/addresses/countries/list{?filter,regionid,statusid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- regionid
optional number(required)filtra por la región.
- statusid
optional number(required)filtra por el estatus 0=Todos, 1=Solo Activos, 2=Solo Inactivos
- order
required number(required)1=id, 2=nombre, 3=status (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Venezuela",
"status": {
"id": 1,
"dsc": "Activo"
},
"regions": [
{
"id": 1,
"name": "Colegios de Venezuela",
"assigned": true
},
...
]
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un País ¶
Este servicio obtiene un país en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/addresses/countries/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del país
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"name": "Venezuela",
"status": {
"id": 1,
"dsc": "Activa"
}
},
"regions": [
{
"id": 1,
"name": "Colegios de Venezuela",
"assigned": true
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un País ¶
Este servicio permitirá incluir o modificar un país
updatePOST/addresses/countries/update{?id,name,status,regionids,sessionid}
Example URI
- id
required number(required)Identificador de la país. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre del País [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- status
required number(required)1=activo, 0=inactivo
- regionids
required string(required)identificadores de las regiones a las que pertenece separadas or guiones (Ej “1-2-3”)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar País ¶
Permite eliminar un país determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/addresses/countries/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del país que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Estados ¶
Este servicio obtiene una lista de los estados existentes
listPOST/addresses/states/list{?filter,statusid,countryid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre, el municipio y por el estatus “Activo”/“Inactivo”
- statusid
optional number(required)filtra por el estatus 0=Todos, 1=Solo Activos, 2=Solo Inactivos
- countryid
required number(required)Identificador del país
- order
required number(required)1=fecha de creacion, 2=nombre, 3=status (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Miranda",
"status": {
"id": 1,
"dsc": "Activo"
},
"schools": 2
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Estado ¶
Este servicio obtiene un estado en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/addresses/states/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del estado
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"name": "Miranda",
"status": {
"id": 1,
"dsc": "Activo"
},
"municipalities": [
{
"id": 1,
"name": "Baruta",
"status": {
"id": 1,
"dsc": "Activo"
}
},
...
]
},
...
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar Estado ¶
Este servicio permitirá incluir o modificar un estado.
updatePOST/addresses/states/update{?id,name,countryid,status,sessionid}
Example URI
- id
required number(required)Identificador del estado. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre del Estado [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- countryid
required number(required)Identificador del país
- status
required number(required)1=activo, 0=inactivo
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Estado ¶
Permite eliminar un estado determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/addresses/states/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del estado que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Municipios ¶
Este servicio obtiene una lista de los municipios existentes
listPOST/addresses/municipalities/list{?filter,statusid,stateid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre, el municipio y por el estatus “Activo”/“Inactivo”
- statusid
optional number(required)filtra por el estatus 0=Todos, 1=Solo Activos, 2=Solo Inactivos
- stateid
optional number(required)Indica el filtro por estado
- order
required number(required)1=id, 2=nombre, 3=estado y municipio, 4=estatus (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Baruta",
"status": {
"id": 1,
"dsc": "Activo"
},
"state": {
"id": 1,
"name": "Miranda"
}
}
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Municipio ¶
Este servicio obtiene un municipio en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/addresses/municipalities/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del municipio
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"name": "Baruta",
"status": {
"id": 1,
"dsc": "Activo"
},
"state": {
"id": 1,
"name": "Miranda"
}
},
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un Municipio ¶
Este servicio permitirá incluir o modificar un municipio.
updatePOST/addresses/municipalities/update{?id,name,stateid,status,sessionid}
Example URI
- id
required number(required)Identificador del municipio. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre del Municipio [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- stateid
required number(required)Identificador del estado al que pertenece
- status
required number(required)1=activo, 0=inactivo
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Municipio ¶
Permite eliminar un municipio determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/addresses/municipalities/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del municipio que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Organización ¶
Servicios relacionados con eventos y fases
Listado de Grados ¶
Este servicio obtiene una lista de los grados existentes
listPOST/organization/grades/list{?filter,statusid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- statusid
optional number(required)filtra por el estatus 0=Todos, 1=Solo Activos, 2=Solo Inactivos
- order
required number(required)1=id, 2=nombre, 3=status (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Prueba Recreativa de Matemáticas",
"status": {
"id": 1,
"dsc": "Activa"
}
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Colegios ¶
Este servicio obtiene una lista de los colegios existentes. Si el parámetro eventid <> 0 solo se deben retornar los colegios que estén inscritos en ese evento y se debe devolver la sección “amounts”
listPOST/organization/schools/list{?filter,eventid,typeid,statusid,stateid,regionid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- eventid
required number(required)Identificador del evento (0=todos) //NEW
- typeid
required number(required)Identificador del tipo de colegio (-1=todos, 0=Público, 1=Privado, 2=Subsidiado) //NEW
- statusid
optional number(required)filtra por el estatus 0=Todos, 1=Solo Activos, 2=Solo Inactivos
- stateid
optional number(required)filtra por el estado 0=Todos
- regionid
optional number(required)filtra por la región 0=Todos
- order
required number(required)1=id, 2=nombre, 3=codigo, 4=Estado, 5=Contacto1, 6=Tipo (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Colegio UNO",
"code": "11000011",
"amounts": {
"pupilamount": 123.45, //NEW
"srate": 123.45, //NEW
"discount": 12, //NEW
},
"status": {
"id": 1,
"name": "Activo"
},
"type": {
"id": 1,
"name": "Privado"
},
"state": {
"id": 1,
"name": "Miranda"
},
"contacts": [
{
"id": 1,
"name": "Contacto Uno",
"phone": "04126246152"
},
...
]
},
...
],
"groups": [
{
"id": 1,
"name": "Grupo UNO"
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Colegio ¶
Este servicio obtiene uncolegio específico
entryPOST/organization/schools/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del Colegio
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry":{
"id": 1,
"name": "Colegio UNO",
"code": "11000011",
"status": {
"id": 1,
"name": "Activo"
},
"code": "110001",
"rif": "J123456789",
"phone": "",
"address": {
"dsc": "Dirección completa",
"municipality": {
"id": 1,
"name": "Baruta"
},
"state": {
"id": 1,
"name": "Miranda"
},
"country": {
"id": 1,
"name": "Venezuela"
}
},
"type": {
"id": 1,
"name": "Privado"
},
"groups": [
{
"id": 1,
"name": "Grupo Uno"
},
...
],
"contacts": [
{
"id": 1,
"name": "Contacto Uno",
"position": "Cargo",
"email": "contacto@correo.com",
"phone1": "04126246152",
"phone2": "04126246152"
},
...
],
"inscriptions": [ //NEW
{
"id": 1,
"event": {
"id": 1,
"name": "Evento UNO",
},
"modality": {
"id": 1,
"name": "En Línea"
},
"estimated": 124,
"havepayments": true,
"havepupils": true
},
...
]
}
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un Colegio ¶
Este servicio permitirá incluir o modificar un colegio
updatePOST/organization/schools/update{?id,code,name,stateid,municipalityid,status,typeid,address,phone,rif,groupids,contacts,sessionid}
Example URI
- id
required number(required)Identificador del colegio. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- code
required string(required)Código del Colegio [A-Z0-9]
- name
required string(required)Nombre del Estado [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- stateid
required number(required)Identificador del estado
- municipalityid
optional number(required)Identificador del municipio (0 = no tiene)
- status
required number(required)1=activo, 0=inactivo
- typeid
required number(required)0=publico, 1=privado, 2=subvencionado
- address
optional string(required)Dirección [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- phone
optional string(required)Número de teléfono [0-9 -()]
- rif
optional string(required)rif [JGVE0-9]
- groupids
required string(required)Lista de ids de los grupos a los que pertenece (Ej “1-2-3-4-5”
- contacts
required string(required)“[{id:1,name:‘Nombre Contacto’,position:‘Cargo’,email:’’,phone1:’’,phone2:’’},…]” // los id en 0 incluyen contactos
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Colegio ¶
Permite eliminar un colegio determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/organization/schools/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del colegio que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Hacer un Contacto Usuario ¶
Este servicio permitirá hacer o deshacer a un contacto como usuario. Si activate es 1, se crea una clave aleatoria al usuario y se le envia un correo. Si es 0 se pone la clave y sessionid en null.
makeuserPOST/organization/schools/contacts/makeuser{?id,activate,sessionid}
Example URI
- id
required number(required)Identificador del contacto.
- activate
required number(required)1=activar como usuario, 0=desactivar como usuario
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Inscribir colegio en un evento ¶
Este servicio inscribe un colegio en un evento específico.
inscribPOST/organization/schools/inscription/inscrib{?schoolid,eventid,modalityid,estimated,sessionid}
Example URI
- schoolid
required number(required)Identificador del Colegio - Si la combinación schoolid-eventid no existe se incluye, sino se actualiza
- eventid
required number(required)Identificador del Evento /
- modalityid
required number(required)Identificador de la modalidad
- estimated
required number(required)Numero de alumnos estimados
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Colegio ¶
Permite eliminar una inscripción de un colegio determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/organization/schools/inscription/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador a la relación colegio-evento que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Alumnos ¶
Este servicio obtiene una lista de los alumnos existentes. Si el parámetro eventid <> 0 solo se deben retornar los alumnos que pertenezcan a colegios que estén inscritos en ese evento
listPOST/organization/pupils/list{?filter,eventid,stateid,regionid,schoolid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el codigo, cedula, nombre
- eventid
required number(required)Identificador del evento (0=todos)
- stateid
optional number(required)filtra por el estado 0=Todos
- regionid
optional number(required)filtra por la región 0=Todos
- schoolid
optional number(required)filtra por un colegio 0=Todos
- order
required number(required)1=id, 2=nombre, 3=codigo, 4=Estado, 5=Contacto1, 6=Tipo (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"code": "11000011",
"docid": "V09123456",
"fullname": "Pedro Pérez",
"name": "Pedro",
"surname": "Pérez",
"status": {
"id": 1,
"dsc": "Activa"
},
"grade": {
"id": 1,
"name": "1er Grado"
},
"state": {
"id": 1,
"name": "Miranda"
},
"school": {
"id": 1,
"name": "Colegio",
"type": {
"id": 1,
"name": "Privado"
}
},
"event": {
"id": 1,
"name": "Evento UNO"
},
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Alumno ¶
Este servicio obtiene un alumno específico
entryPOST/organization/pupils/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del Alumno
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry":{
"general": {
"school": {
"id": 1,
"name": "Colegio",
"type": {
"id": 1,
"name": "Privado"
}
},
"event": {
"id": 1,
"name": "Evento UNO"
},
"status": {
"id": 1,
"dsc": "Activa"
},
},
"basic": {
"id": 1,
"code": "11000011",
"docid": "V09123456",
"name": "Pedro",
"surname": "Pérez",
"birthdate": "2000-12-23",
"grade": {
"id": 1,
"name": "1er Grado"
},
"gender": {
"id": "M",
"name": "Masculino"
},
"obs": ""
},
"pasrticipation": [
{
"date": "24/12/2025",
"phase": {
"id": 1,
"name": "Fase Inicial
},
"test": {
"id": 1,
"name": "Prueba UNO"
}
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un Alumno ¶
Este servicio permitirá incluir o modificar un alumno
updatePOST/organization/pupils/update{?id,name,surname,docid,genderid,birthdate,gradeid,obs,statusid,sessionid}
Example URI
- id
required number(required)Identificador del alumno. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre del Alumno [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- surname
required string(required)Apellido del Alumno [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- docid
required number(required)Cédula del alumno
- genderid
required string(required)Sexo (“F”/“M”)
- birthdate
required string(required)Fecha de nacimiento (Formato “YYYY-MM-DD”)
- gradeid
required number(required)Identificador del grado
- statusid
required number(required)1=activo, 0=inactivo
- obs
required string(required)0=publico, 1=privado, 2=subvencionado
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Alumno ¶
Permite eliminar un alumno determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/organization/pupils/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del alumno que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Agrupaciones ¶
Este servicio obtiene una lista de las agrupaciones existentes.
listPOST/organization/groups/list{?filter,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre
- order
required number(required)1=id, 2=nombre, 3=numero de colegios (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Agrupación UNO",
"schools": 35,
"status": {
"id": 1,
"name": "Activo"
}
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Una Agrupación ¶
Este servicio obtiene una agrupación específica
entryPOST/organization/groups/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador de la agrupación
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry":
{
"id": 1,
"name": "Agrupación UNO",
"schools": [
{
"id": 1,
"name": "Colegio UNO",
"status": {
"id": 1,
"name": "Activo"
},
"state": {
"id": 1,
"name": "Miranda"
},
"municipality": {
"id": 1,
"name": "Baruta"
},
"type": {
"id": 1,
"name": "Público"
},
},
...
]
},
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar una Agrupación ¶
Este servicio permitirá incluir o modificar una agrupación
updatePOST/organization/groups/update{?id,name,statusid,sessionid}
Example URI
- id
required number(required)Identificador de la agrupación. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre de la Agrupación [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- statusid
required number(required)1=activo, 0=inactivo
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Agrupación ¶
Permite eliminar una agrupación determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/organization/groups/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador de la agrupación que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Eventos ¶
Este servicio obtiene una lista de los eventos existentes
listPOST/organization/events/list{?filter,statusid,year,regionid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- statusid
optional number(required)filtra por el estatus 0=Todos, 1=Solo Activos, 2=Solo Inactivos
- year
optional number(required)filtra por el año
- regionid
optional number(required)filtra por las regiones
- order
required number(required)1=id, 2=nombre, 3=año, 4=status (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"region": {
"id": 1,
"name": "COlegios de Venezuela"
},
"name": "Prueba Recreativa de Matemáticas",
"image": "http://xxx.com/1.img",
"year": "2023",
"status": {
"id": 1,
"dsc": "Activa"
},
"activephases": 3
},
...
],
"discounts": {
"school": {
"public": 100,
"privated": 0,
"school_mixed": 50
},
"modality": {
"online": 10,
"presential": 15
}
},
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Años ¶
Este servicio obtiene una lista de los años de los eventos existentes ordenados por año
listPOST/organization/events/years/list{?regionid,sessionid}
Example URI
- regionid
optional number(required)filtra por las regiones
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"records": [ 2001, 2002, 2003, ...]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Evento ¶
Este servicio obtiene un evento en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/organization/events/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del evento
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"region": {
"id": 1,
"name": "Colegios de Venezuela"
},
"name": "Prueba Recreativa de Matemáticas",
"dsc": "", //NEW
"image": "http://xxx.com/1.img",
"year": "2023",
"status": {
"id": 1,
"dsc": "Activa"
},
"grades": [1,2,3,4], //NEW
"pupilamount": 123.45, //NEW
"discounts": { //NEW
"public": 100,
"private": 0,
"mixed": 50,
},
"modalities": [
{
"type": {
"id": 0, //0=presencial,1=virtual
"dsc": "Presencial"
},
"duration": {
"from": "2024-01-01 23:56",
"dateto": "2024-01-01 23:56"
},
"paymentdate": "2024-01-01 23:56", //NEW
"registerstatus": { //NEW
"school": 1,
"pupil": 1,
"payment": 1
},
"discount": 10 //NEW
},
...
],
"phases": [
{
"id": 1,
"name": "Fase Inicial
},
...
],
"grades": [ //NEW
{"id"=1, "name": "1er grado",...}
]
},
...
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un Evento ¶
Este servicio permitirá incluir o modificar un evento
updatePOST/organization/events/update{?id,name,dsc,year,IMAGE,regionid,inscriptiondet,phases,status,gradeids,pupilamount,discpublic,discprivate,discmixed,sessionid}
Example URI
- id
required number(required)Identificador de la región. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre del Evento [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- dsc
optional string(required)Descripción del Evento [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ] //NEW
- year
required number(required)Año del Evento
- IMAGE
optional file(required)Imagen del evento
- regionid
required number(required)Identificador del área geográfica
- inscriptiondet
required string(required)Detalle de la inscripción en JSON (Ej. [{“modalitytype”:1(0=presencial,1=virtual),“datefrom”:“2024-01-01 23:56”,“dateto”:“2024-01-01 23:56”,“paymentlimi”:“2024-01-01 23:56”,“schoolregst”:1,“pupilregst”:1,“paymentregst”:1,“discount”:10},…]) //NEW
- phases
required string(required)Fases del evento en orden correcto, en formato JSON (Ej. [{“id”:1,“name”:“Fase Preliminar”},…] si el id = 0 se agrega la fase)
- status
required number(required)1=activo, 0=inactivo
- gradeids
required string(required)Lista de id’s de grados permitidos (Ej 1,2,3,4) //NEW
- pupilamount
required number(required)Monto a pagar por alumno //NEW
- discpublic
required number(required)Descuento a colegios públicos //NEW
- discprivate
required number(required)Descuento a colegios privados //NEW
- discmixed
required number(required)Descuento a colegios mixtos //NEW
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Evento ¶
Permite eliminar un evento determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/organization/events/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del evento que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Exámenes ¶
Servicios relacionados con los exámenes
Listado de Pruebas ¶
Este servicio obtiene una lista de los exámenes existentes
listPOST/tests/list{?filter,eventid,eventphaseid,gradeid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- eventid
optional number(required)Identificador del evento
- eventphaseid
optional number(required)filtra por la fase del evento
- gradeid
optional number(required)filtra por el grado
- order
required number(required)1=id, 2=evento, 3=fase, 4=grado, 5=Prueba, 6=Inicio, 7=Número de Pregunta (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Prueba UNO",
"event": {
"id": 1,
"name": "Evento UNO"
},
"phase": {
"id": 1,
"name": "Fase UNO"
},
"grade": {
"id": 1,
"name": "1"
},
"datetimefrom": {
"date": "2024-01-02 23:34:00",
"formatted": "02/01/24 11:34p"
},
"status": {
"id": 1,
"dsc": "Activa"
},
"questions": 3,
"maxpoints": 15 // NEW
},
...
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Duplicar Prueba ¶
Permite duplicar una prueba determinada. La respuesta 204 es cuando no se encuentra el registro.
duplicateGET/tests/duplicate{?id,sessionid}
Example URI
- id
required number(required)Identificador de la prueba que se desea duplicar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID de la nueva prueba
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Duplicar Instrucciones ¶
Permite duplicar las instrucciones de una una prueba determinada. La respuesta 204 es cuando no se encuentra el registro de origen
duplicateGET/tests/instructions/duplicate{?fromtestid,totestid,sessionid}
Example URI
- fromtestid
required number(required)Identificador de la prueba a ser copiada
- totestid
required number(required)Identificador de la prueba en la que se copiarán las instrucciones
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"cnt" : 1 // numero de instrucciones copiadas
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Duplicar Valoraciones ¶
Permite duplicar las valoraciones de una una prueba determinada. La respuesta 204 es cuando no se encuentra el registro de origen
duplicateGET/tests/valorations/duplicate{?fromtestid,totestid,sessionid}
Example URI
- fromtestid
required number(required)Identificador de la prueba a ser copiada
- totestid
required number(required)Identificador de la prueba en la que se copiarán las valoraciones
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"cnt" : 1 // numero de valoraciones copiadas
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Duplicar Instrucciones ¶
Permite duplicar las instrucciones de una una prueba determinada. La respuesta 204 es cuando no se encuentra el registro de origen
duplicateGET/tests/instructions/duplicate{?fromtestid,totestid,sessionid}
Example URI
- fromtestid
required number(required)Identificador de la prueba a ser copiada
- totestid
required number(required)Identificador de la prueba en la que se copiarán las instrucciones
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"cnt" : 1 // numero de instrucciones copiadas
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Una Prueba ¶
Este servicio obtiene una prueba en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/tests/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador dela prueba
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"name": "Prueba Recreativa de Matemáticas",
"event": {
"id": 1,
"name": "Evento UNO"
},
"eventphase": {
"id": 1,
"name": "Fase UNO"
},
"status": {
"id": 1,
"dsc": "Activa"
},
"grade": {
"id": 1,
"name": "Grado1"
},
"correctiontype": {
"id": 0, // 1=Por examen, 2=Por pregunta
"name": "Por examen"
},
"modality": {
"id": 0, // 0=Presencial 1= Virtual
"name": "Por examen"
},
"datetimefrom": {
"date": "2024-01-02 23:34",
"formatted": "02/01/24 11:34p"
},
"datetimeto": {
"date": "2024-01-02 23:34",
"formatted": "02/01/24 11:34p"
},
"minutesmax": 40,
"backedit": true,
"randomquestions": true
},
...
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar una Prueba ¶
Este servicio permitirá incluir o modificar una prueba
updatePOST/tests/update{?id,name,status,eventphaseid,gradeid,datetimefrom,datetimeto,minutesmax,backedit,correctiontype,randomquestions,modality,sessionid}
Example URI
- id
required number(required)Identificador de la prueba. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre de la prueba [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- status
required number(required)1=activo, 0=inactivo
- eventphaseid
required number(required)identificador de la fase
- gradeid
required number(required)identificador del grado
- datetimefrom
required string(required)Fecha/Hora de inicio (Formato ‘YYYY-MM-DD HH:MM’)
- datetimeto
required string(required)Fecha/Hora de fin (Formato ‘YYYY-MM-DD HH:MM’)
- minutesmax
required number(required)duración en minutos
- backedit
required number(required)1=puede editar preguntas anteriores, 0=no puede
- correctiontype
required number(required)0=por examen, 1=por pregunta
- randomquestions
required number(required)0=Por campo order, 1=Aleatorio
- modality
required number(required)número de la modalidad
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Prueba ¶
Permite eliminar una prueba determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/tests/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador de la prueba que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Valoraciones ¶
Este servicio obtiene una lista de llas valoraciones de un examen
listPOST/tests/valorations/list{?filter,testid,order,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre
- testid
required number(required)Identificador de la prueba
- order
required number(required)1=id, 2=nombre (Usar valores negativos para orden descendente)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"initialpoints": 0,
"records": [
{
"id": 1,
"name": "Prueba UNO",
"okanswer": 1,
"badanswer": -1,
"noanswer": 0,
"maxpoints": 10
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar valoraciones ¶
Este servicio permitirá incluir o modificar las valoraciones de una prueba
-
Request (application/json)
{ "difficulties": [ // enviar en el orden correcto, BACK usar el campo ord para mantener el orden { "id": 1, // si es 0 se incluye, negativo se elimina, entero se actualiza "name": "Fácil", "okanswer": 1, "badanswer": -1, "noanswer": 0, "maxpoints": 10 }, ... ] }
updatePOST/tests/valorations/update{?testid,initialpoints,sessionid}
Example URI
- testid
required number(required)Identificador de la prueba
- initialpoints
required number(required)puntos iniciales
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Preguntas ¶
Este servicio obtiene una lista de las preguntas de un examen ordenadas por el campo ord
listPOST/tests/questions/list{?filter,testid,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el tipo
- testid
required number(required)Identificador del examen
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Prueba UNO",
"status": {
"id": 1,
"dsc": "Activa"
},
"type": {
"id": 1,
"dsc": "Selección Simple"
},
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Actualizar orden de las preguntas ¶
Este servicio permitirá actualizar el orden de las preguntas de una prueba
orderPOST/tests/questions/order{?testdifficultyid,ids,sessionid}
Example URI
- testdifficultyid
required number(required)Identificador de la dificultad de la prueba
- ids
required string(required)Listado de los ids en el orden separados por guiones (Ej “1,4,2,3,6”)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Una Pregunta ¶
Este servicio obtiene una pregunta en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/tests/questions/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador de la pregunta
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"testdifficulty": {
"id": 1,
"name": "Fácil"
},
"question": {
"content": "", // richtext
"type": {
"id": 1, // 1=richtext, 2=SCORM
"name": "Richtext"
},
"scormmode": 1, // 0=Ventana Nueva, 1=Embebido, 2=Flotante
"initialurl": "http://...", // ESTO NO ESTOY MUY SEGURO
"status": {
"id": 1,
"dsc": "Activa"
},
"tags": ["tag1", "tag2", ...],
"questions": {
"type": 1,
"values": [ // cuando type es 1 o 2
{
"id": 1, // deben venir ordenadas por ord
"value": "Valor UNO", // string si texto, url si imagen
"contettype": "text/plain", //"text/plain", "image/png", "image/jpg"
"correct": true,
},
...
],
"values": [ // cuando type 3
{
"id": 1, // deben venir ordenadas por ord
"value": "Valor UNO", // string si texto, url si imagen
"contettype": "text/plain", //"text/plain", "image/png", "image/jpg"
},
...
],
"values": { // cuando type 4
"id": 1,
"admittext": true,
"attachcount": 3
}
}
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar una Pregunta ¶
Este servicio permitirá incluir o modificar una pregunta de una prueba
-
Request (application/json)
{ // para tipos 1=Sel Simple, 2=Sel Multiple "content": "<html>......</html>", "tags": [ "tag1", "tag2", ...], "options": [ { "id": 1, // si es 0 se incluye, negativo se elimina, entero se actualiza "label": "Opción UNO", "correct": true, "contenttype": "text/plain", // si es imagen "image/png", "image/jpg" "filename": "archivouno" // nombre del archivo que viene en [FILES] }, ... ] } -
Request (application/json)
{ // para tipos 3=Resp Corta "tags": [ "tag1", "tag2", ...], "options": [ { "id": 1, // si es 0 se incluye, negativo se elimina, entero se actualiza "label": "Opción UNO", "contenttype": "text/plain", // si es imagen "image/png", "image/jpg" "filename": "archivouno" // nombre del archivo que viene en [FILES] }, ... ] } -
Request (application/json)
{ // para tipos 4=Resp Corta "tags": [ "tag1", "tag2", ...], "options": [ { "id": 1, // si es 0 se incluye, negativo se elimina, entero se actualiza "admittext": true, "attachcount": 2 }, ... ] }
updatePOST/tests/questions/update{?id,status,testdifficultyid,contenttype,scormmode,scormfilename,questiontypes,FILES,sessionid}
Example URI
- id
required number(required)Identificador de la pregunta. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- status
required number(required)1=activa, 0=inactiva
- testdifficultyid
required number(required)Identificador de la valoración de la pregunta
- contenttype
required number(required)1=Richtext, 2=SCORM
- scormmode
optional number(required)0=Ventana Nueva, 1=Embebido, 2=Flotante
- scormfilename
optional string(required)Nombre del archivo SCORM
- questiontypes
required number(required)0=Sel Simple, 1=Sel Multiple, 2=Resp Corta, 3=Desarrollo
- FILES
optional filearray(required)archivos adjuntos
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Pregunta ¶
Permite eliminar una pregunta determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/tests/questions/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador de la pregunta que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar Instrucciones ¶
Este servicio permitirá incluir o modificar instrucciones. Siempre se borrarán las existentes y se crearán
-
Request (application/json)
{ "instructions": [ { "id": 1, // si es 0 se incluye, negativo se elimina, positivo se actualiza "content": "<html>....</html>", "contenttype": "image/png", "filename": "archivouno" // nombre del archivo que viene en [FILES] }, ... ] }
updatePOST/tests/instructions/update{?testid,FILES,sessionid}
Example URI
- testid
required number(required)Identificador del examen
- FILES
optional filearray(required)archivos adjuntos
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // testID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listar Instrucciones ¶
Este servicio obtiene una lista de las instrucciones
listPOST/tests/instructions/list{?testid,sessionid}
Example URI
- testid
required number(required)Identificador del examen
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"records": [
{
"id": 1,
"content": "<html>...</html>",
"image": {
"url": "http:/..../archivo.png",
"type": "image/png"
}
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}SETUP de Vista de exámenes ¶
Devuelve los datos iniciales del examen.
setupGET/tests/view/setup{?sessionid,testid}
Example URI
- sessionid
required string(required)identificador de la sesión
- testid
required number(required)identificador del examen
200Headers
Content-Type: application/jsonBody
{
"instructions": [
{
"id": 1,
"totalquestions": 23,
"eventname": "Nombre del evento",
"testname": "Nombre del examen",
"content": "<html>...</html>",
"usepicture": true,
"backallowed": true,
"image": {
"url": "http:/..../archivo.png",
"type": "image/png"
}
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Error en la llamada del servicio"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}404Headers
Content-Type: application/jsonBody
{
"msg": "Prueba no encontrada"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Error inteno"
}Ver Pregunta ¶
Muestra la pregunta según el ordinal recibido
nextPOST/tests/view/question{?testid,ord,sessionid}
Example URI
- testid
required number(required)identificador del examen
- ord
required number(required)Ordinal de la pregunta que se desea ver
- sessionid
required string(required)identificador de la sesión
200Headers
Content-Type: application/jsonBody
{
"status": {
"id": 1,
"dsc": "Activa"
},
"lefttime": [ // tiempo transcurrido desde el inicio de la prueba
"days": 0,
"hours": 4,
"minutes": 23,
"seconds": 12
],
"question": {
"id": 1, // identificador de la pregunta
"content": "", // richtext
"displaytype": {
"id": 1, // 1=richtext, 2=SCORM
"name": "Richtext"
},
"scorm": {
"mode": 1, // 0=Ventana Nueva, 1=Embebido, 2=Flotante
"utl": : "http://...", // ESTO NO ESTOY MUY SEGURO
},
"type": 1, // 1=seleccion simple, 2=seleccion multiple, 3=texto corto, 4=desarrollo
"options": [ // cuando type es 1 o 2
{
"id": 1, // deben venir ordenadas por ord
"value": "Valor UNO", // string si texto, url si imagen
"contettype": "text/plain", //"text/plain", "image/png", "image/jpg"
},
...
],
"type4": { // cuando es type 4 (desarrollo)
"admittext": true,
"attachcount": 3
}
},
"answer": "{ 'questiontype1id': 1 }" // revisar formato del tests/answer
}400Headers
Content-Type: application/jsonBody
{
"msg": "Error en la llamada del servicio"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}404Headers
Content-Type: application/jsonBody
{
"msg": "Prueba no encontrada"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Error inteno"
}Respuestas ¶
Servicios relacionados con los exámenes ejecutados
Listado de Pruebas Realizadas ¶
Este servicio obtiene una lista de los exámenes presentados existentes
listPOST/answers/list{?filter,eventid,eventphaseid,gradeid,statusid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- eventid
optional number(required)Identificador del evento
- eventphaseid
optional number(required)filtra por la fase del evento
- gradeid
optional number(required)filtra por el grado
- statusid
optional number(required)0=Todos, 1=Corregidos, 2=Pendientes
- order
required number(required)1=id, 2=evento, 3=fase, 4=grado, 5=Prueba, 6=Inicio, 7=Número de Pregunta (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"testakeridid": 1, // testtakerid
"pupil": {
"code": "0000001",
"id": 1,
"name": "Alumno UNO"
},
"event": {
"id": 1,
"name": "Evento UNO"
},
"phase": {
"id": 1,
"name": "Fase UNO"
},
"grade": {
"id": 1,
"name": "1"
},
"modality": {
"id": 1,
"name": "1"
},
"test": {
"id": 1,
"name": "1"
},
"region": {
"id": 1,
"name": "1"
},
"qualification": 12,
"status": {
"id": 1, // 1=Corregido, 2=Sin Corregir
"dsc": "Corregido"
}
},
...
],
"privileges": {
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado CSV de Pruebas Realizadas ¶
Este servicio obtiene una listado de texto de los exámenes presentados existentes
listcsvPOST/answers/listcsv{?filter,eventid,eventphaseid,gradeid,statusid,order,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- eventid
optional number(required)Identificador del evento
- eventphaseid
optional number(required)filtra por la fase del evento
- gradeid
optional number(required)filtra por el grado
- statusid
optional number(required)0=Todos, 1=Corregidos, 2=Pendientes
- order
required number(required)1=id, 2=evento, 3=fase, 4=grado, 5=Prueba, 6=Inicio, 7=Número de Pregunta (Usar valores negativos para orden descendente)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/textBody
""400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Una Prueba Presentada ¶
Este servicio obtiene una prueba persentada en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/answers/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador dela prueba (testtakerid)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1, // testid
"name": "Prueba Recreativa de Matemáticas", //testname
"testtaker": {
"id": 1, // testtakerid
"pupil": {
"code": "0000001",
"id": 1, // pupilid
"name": "Alumno UNO"
},
"event": {
"id": 1,
"name": "Evento UNO"
},
"phase": {
"id": 1,
"name": "Fase UNO"
},
"grade": {
"id": 1,
"name": "1"
},
},
"questions": [
{
"id": 1,
"ord": 1,
"content": ".....",
"type": {
"id": 1, //1=Sel SImple, 2=Sel Multiple, 3=Resp Corta, 4=Desarrollo
"ord": 1,
"dsc": "Selección Simple"
},
"correctanswers": [
{
"id": 1,
"ord": 1,
"dsc": "Opción UNO"
},
...
],
"answers": [
{
"id": 1,
"ord": 1,
"dsc": "Opción UNO"
},
...
],
"correction": { // NEW
"answer": {
"id": 1,
"text": "respuesta en rich text",
"attachments": [
"https://ubicacion.com/imagen.png",
...
]
},
"history": [
{
"datetime": "01-01-2024 04:30pm",
"note": "blablabla",
"user": {
"id": 1,
"email": "ander.rivas@gmail.com",
"name": "Ander Rivas"
}
},
...
]
},
"qualification": 2
},
...
]
},
...
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Prueba Presentada ¶
Permite eliminar una prueba presentada determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/answers/delete{?testtakerids,sessionid}
Example URI
- testtakerids
required string(required)Lista de id de pruebas a eliminar separados por comas (Ej. “1,23,45”)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"ids" : "1,34,45" // Lista de IDs eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Roles ¶
Servicios relacionados a los Roles
Obtener Listado ¶
Este servicio obtiene una lista de los roles existentes
listGET/roles/list{?filter,statusid,offset,order,numofrec,sessionid}
Example URI
- filter
optional string(required)filtro que se aplicará en la consulta (se busca por name)
- statusid
required number(required)0=Todos, 1=Activos, 2=Inactivos
- offset
required number(required)Registros desde el que se mostrará la información
- order
optional string(required)0 Mas recientes (ordenado por id desc), 1=Name, 2=Status (numeros negativos para sentido opuesto).
- numofrec
required number(required)Número de registros que devolverá el servicio
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 2,
"records" :
[
{
"id": 1,
"name": "Adminsitración",
"status": {
"id": 1,
"dsc": "Activo"
},
"privileges": ["privilegio UNO", "Privilegio DOS",...]
},
{
"id": 2,
"name": "Sistemas"
"status": {
"id": 1,
"dsc": "Activo"
},
"privileges": ["privilegio UNO", "Privilegio DOS",...]
}
...
],
"privileges" : {
"create": true,
"read": true,
"update": true,
"delete": true
}
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Parámetros incorrectos"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Error Interno"
}Incluye o modifica un rol ¶
Este servicio permitirá incluir o modificar un rol. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando no se pudo modificar
updatePOST/roles/update{?id,name,status,sessionid}
Example URI
- id
required number(required)Identificador del rol. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre completo del usuario
- status
required number(required)1=activo, 0=inactivo
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}204Headers
Content-Type: application/json400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Obtener Rol ¶
Obtiene la información de un rol determinado
entryGET/roles/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del rol que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"name": "Administración",
"status": {
"id": 1,
"dsc": "Activo"
},
},
"privileges" : {
"create": true,
"read": true,
"update": true,
"delete": true
}
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}404Headers
Content-Type: application/jsonBody
{
"msg": "No encontrado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Rol ¶
Permite eliminar un rol determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deleteDELETE/roles/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del rol que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}204Headers
Content-Type: application/json304Headers
Content-Type: application/json400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Users ¶
Servicios relacionados con usuarios del cms
Listado de Usuarios ¶
Este servicio obtiene una lista de los regiones existentes
listPOST/users/list{?filter,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre, usuario y por el estatus “Activo”/“Inactivo”
- order
required number(required)1=id, 2=nombre, 3=usr, 4=rol (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 1,
"records": [
{
"id": 1,
"usr": "javier@totalsoftware.com.ve",
"name": "Javier Ramos",
"status": {
"id": 1,
"dsc": "Activo"
},
"rol": {
"id": 1,
"dsc": "Adminitradores"
}
}
...
],
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Usuario ¶
Este servicio obtiene una usuario en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/users/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del usuario
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"usr": "javier@totalsoftware.com.ve",
"name": "Javier Ramos",
"status": {
"id": 1,
"dsc": "Activo"
},
"rol": {
"id": 1,
"dsc": "Adminitradores"
}
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un Usuario ¶
Este servicio permitirá incluir o modificar un usuario del cms
La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede modificar por alguna razón
updatePOST/users/update{?id,name,status,usr,rolid,sessionid}
Example URI
- id
required number(required)Identificador del usuario. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre del Usuario [a-zA-Z0-9 áéíóúñüÁÉÍÓÚÑÜ]
- status
required number(required)1=activo, 0=inactivo
- usr
required string(required)Correo del Usuario [a-zA-Z0-9áéíóúñüÁÉÍÓÚÑÜ]
- rolid
required number(required)Identificador del rol
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}204Headers
Content-Type: application/json304Headers
Content-Type: application/json400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Usuarios ¶
Permite eliminar un usuario determinada.
La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/users/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del rol que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}204Headers
Content-Type: application/json304Headers
Content-Type: application/json400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Privilegios ¶
Servicios de los privilegios disponibles y asociados a los usuarios
Obtener Listado ¶
Obtener un listado de los privilegios disponibles en el sistema asociándolos a un rol
listPOST/privileges/list{?rolid,filter,offset,order,numofrec,sessionid}
Example URI
- rolid
required number(required)Identificador del rol
- filter
optional string(required)filtro que se aplicará en la consulta (Se busca por grupo y por dsc)
- offset
required number(required)Registros desde el que se mostrará la información
- order
optional string(required)1=Grp, 2=Dsc (numeros negativos para sentido opuesto).
- numofrec
required number(required)Número total de registros a devolver.
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 2,
"records" :
[
{
"grp": "grupo1",
"dsc": "Mantenimiento de Usuarios",
"actions": [{id del privlegio o 0 si no aplica},{id del privlegio o 0 si no aplica},...] // COL1=Activar, COL2=Ver, COL3=Incluir, COL4=Modificar, COL5=Eliminar
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Error en la llamada del servicio"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sessión expirada"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Error Interno"
}Asignar/Desasignar privilegios de un Rol ¶
Este servicio asigna/desasigna un privilegio de un rol
toggleGET/privileges/toggle{?rolid,privilegeid,sessionid}
Example URI
- rolid
required number(required)Identificado del rol
- privilegeid
required number(required)Identificador del privilegio
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"assigned" : true // true si se asignó, fale si no
}400Headers
Content-Type: application/jsonBody
{
"msg": "Error en la llamada del servicio"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Error Interno"
}Correctores ¶
Servicios relacionados con los correctores
Listado de Correctores ¶
Este servicio obtiene una lista de los correctores existentes
listPOST/correctors/list{?filter,eventid,eventphaseid,gradeid,testidid,statusid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre, usuario y por el estatus “Activo”/“Inactivo”
- eventid
optional number(required)Identificador del evento
- eventphaseid
optional number(required)Identificador de la fase
- gradeid
optional number(required)Identificador del grado
- testidid
optional number(required)Identificador del examen
- statusid
optional number(required)Identificador del status
- order
required number(required)1=id, 2=nombre, 3=usr, 4=rol (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 1,
"records": [
{
"id": 1,
"usr": {
"id": 0,
"email": "javier@totalsoftware.com.ve",
"name": "Javier Ramos"
},
"status": {
"id": 1,
"dsc": "Activo"
},
"regions": [
{
"id": 1,
"dsc": "Región UNO"
"events": [
{
"id": 1,
"dsc": "Evento UNO",
"phases": [
{
"id": 1,
"dsc": "Fase UNO"
"tests": [
{
"id": 1,
"dsc": "Prueba UNO"
"grade": {
"id": 1,
"dsc": "Grado UNO"
},
"questions": [
{
"id": 1,
"dsc": "Pregunta UNO"
},
...
]
},
...
]
},
...
]
},
...
]
},
...
],
"countries": [
{
"id": 1,
"dsc": "País UNO",
"states": [
{
"id": 1,
"dsc": "Estado UNO"
},
...
]
},
...
]
}
...
],
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Corrector ¶
Este servicio obtiene una corrector en particular La respuesta 204 es cuando no se encuentra el registro.
entryGET/correctors/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del usuario
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry":{
"id": 1,
"usr": {
"id": 1,
"email": "javier@totalsoftware.com.ve",
"name": "Javier Ramos"
},
"status": {
"id": 1,
"dsc": "Activo"
},
"regions": [
{
"id": 1,
"dsc": "Región UNO"
"events": [
{
"id": 1,
"dsc": "Evento UNO",
"phases": [
{
"id": 1,
"dsc": "Fase UNO"
"tests": [
{
"id": 1,
"dsc": "Prueba UNO",
"correctiontype": {
"id": 0, // 1=Por examen, 2=Por pregunta
"name": "Por examen"
},
"grade": {
"id": 1,
"dsc": "Grado UNO"
},
"questions": [
{
"id": 1,
"dsc": "Pregunta UNO",
"assigned": true,
"type": 0 // 0=Sel Simple, 1=Sel Multiple, 2=Resp Corta, 3=Desarrollo
},
...
]
},
...
]
},
...
]
},
...
]
},
...
],
"countries": [
{
"id": 1,
"dsc": "País UNO",
"states": [
{
"id": 1,
"dsc": "Estado UNO",
"assgined": true
},
...
]
},
...
]
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un Corrector ¶
Este servicio permitirá incluir o modificar un corrector
La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede modificar por alguna razón
updatePOST/correctors/update{?id,userid,states,questions,status,sessionid}
Example URI
- id
required number(required)Identificador del usuario. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- userid
required number(required)Identificador del usuario
- states
required string(required)Lista de los id’s de los estados separados por coma (Ej. “12,34,56,67,87”)
- questions
required string(required)Lista de los id’s de laspreguntas separados por coma (Ej. “12,34,56,67,87”)
- status
required number(required)1=activo, 0=inactivo
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}204Headers
Content-Type: application/json304Headers
Content-Type: application/json400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Corrrectores ¶
Permite eliminar un corrector determinada.
La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/correctors/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del corrector que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}204Headers
Content-Type: application/json304Headers
Content-Type: application/json400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Correcciones ¶
Servicios relacionados con las correciones
Listado de Correcciones ¶
Este servicio obtiene una lista de las correccciones. Debe haber un privilegio que filtre las correciones propias o no
listPOST/corrections/list{?filter,eventid,eventphaseid,gradeid,testid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre, usuario y por el estatus “Activo”/“Inactivo”
- eventid
required number(required)Identificador del evento
- eventphaseid
optional number(required)Identificador de la fase
- gradeid
optional number(required)Identificador del grado
- testid
optional number(required)Identificador del examen
- order
required number(required)1=%Tot, 2=%Corr, 3=Corrector, 4=fase, 5=grado, 6=prueba, 7=Preg (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 1,
"records": [
{
"id": 1, // corrector id
"usr": {
"id": 0,
"email": "javier@totalsoftware.com.ve",
"name": "Javier Ramos"
},
"status": {
"id": 1,
"dsc": "Activo"
},
"phases": [
{
"id": 1,
"dsc": "Fase UNO"
"tests": [
{
"id": 1,
"dsc": "Prueba UNO"
"grade": {
"id": 1,
"dsc": "Grado UNO"
},
"questions": {
"count": 100, // total de preguntas a corregir por el corrector
"notcorrected": { // preguntas pendientes (sin importar el corrector)
"qty": 80, // cantidad
"pct": 20 // %
},
"corrected": { // preguntas corregidas por el corrector
"qty": 14, // cantidad
"pct": 10 // %
}
}
},
...
]
},
...
]
},
...
],
"privileges": {
"update": true,
"goback": true,
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Siguiente Corrección ¶
Este servicio obtiene la siguiente pregunta a corregir según el tipo de corrección del examen (por prueba o por pregunta) y las preguntas asignadas al corrector. Si se consigue una corrección asociada al corrector con la evaluación en -1, se debe seleccionar esa. Si no hay, se debe crear un registro en la tabla corrections asociado al corrector.
nextPOST/corrections/next{?correctorid,testid,back,sessionid}
Example URI
- correctorid
required number(required)Identificador del corrector
- testid
optional number(required)Identificador de filtro por prueba. Si no se envía funciona sobre todas las pruebas
- back
required number(required)Por defecto = 0, pero puede ser 1 para ir hacia atrás. (utlizar el id de la tabla corrections para llevar el control)
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"correctionid": 1,
"test":{
"id":1,
"name":"Nombre de prueba"
},
"question": {
"id": 1, // identificador de la pregunta
"number": 1,
"evaluation": {
"min": 0,
"max": 20,
"value": 10
},
"pupil": {
"id": 1,
"code": "000012",
"name": "Pedro Pérez"
},
"content": "", // richtext
"attachments": [
"https://ubicacion.com/imagen.png",
...
],
"answer": {
"id": 1,
"text": "respuesta en rich text",
"attachments": [
"https://ubicacion.com/imagen.png",
...
]
},
"history": [
{
"datetime": "01-01-2024 04:30pm",
"note": "blablabla"
},
...
]
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Actualizar Corrección ¶
Este servicio actualiza la corrección de la pregunta
updatePOST/corrections/update{?correctionid,evaluation,note,sessionid}
Example URI
- correctionid
required number(required)Identificador de la corrección
- evaluation
required number(required)evaluacio o calificación
- note
required string(required)Nota escrita de la evaluación
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id": 1, // identificador de la corrección actualizada
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Digitalización ¶
Servicios relacionados con el manejo de los exámenes digitalizados
Resumen por Evento ¶
Este servicio obtiene una lista de las digitalizaciones resumidas para un evento específico.
summaryPOST/digitalizations/summary{?eventid,sessionid}
Example URI
- eventid
required number(required)Identificador del evento
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"format": [
{
"phase": {
"id": 1,
"name": "Fase 01",
"prefix": "000001" // se usará el id y se llevará a 6 dígitos
},
},
...
],
"pending": 250,
"errors": 35,
"processed": 45,
"privileges": {
"errors": true,
"processed": true,
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Archivos con Errores ¶
Este servicio obtiene una lista de las digitalizaciones con errores para un evento específico.
failuresPOST/digitalizations/failures{?filter,eventid,phaseid,testid,failure,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre del archivo
- eventid
required number(required)Identificador del evento
- phaseid
optional number(required)Identificador de la fase
- testid
optional number(required)Identificador del examen
- failure
required string(required)Nombre de la falla
- order
required number(required)1=Tipo de Falla, 2=Nombre del archivo (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 35,
"failures": [
"Fase no encontrada",
"Alumno no encontrado",
"Alumno ya existente",
"Demasiadas fallas",
....
],
"records": [
{
"failure": "Alumno no encontrado",
"filename": "010203_colegio_equis_pupil_not_found.jpg"
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Archivos Procesados ¶
Este servicio obtiene una lista de las digitalizaciones procesadas para un evento específico.
processedPOST/digitalizations/processed{?filter,eventid,phaseid,stateid,testid,schoolid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre y por el estatus “Activo”/“Inactivo”
- eventid
required number(required)Identificador del evento
- phaseid
optional number(required)Identificador de la fase
- stateid
optional number(required)Identificador del estado
- testid
optional number(required)Identificador del examen
- schoolid
optional number(required)Identificador del colegio
- order
required number(required)1=ID de la Presentación del Examen (testtaker), 2=Descripción de la fase, , 3=Nombre del grado, 4=Nombre del examen, 5=Nombre de la escuela, 6=Nombre del alumno (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 35,
"records": [
{
"phase": {
"id": 1,
"name": "Fase UNO"
},
"grade": {
"id": 1,
"name": "1 er Grado"
},
"test": {
"id": 1,
"name": "Prueba UNO"
},
"school": {
"id": 1,
"name": "COlegio UNO"
},
"pupil": {
"id": 1,
"name": "Alumno UNO"
}
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Archivos con Errores ¶
Este servicio elimina las digitalizaciones con errores para un evento específico y filtro específico
failuresPOST/digitalizations/deletefailures{?filter,eventid,phaseid,failure,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre del archivo
- eventid
required number(required)Identificador del evento
- phaseid
optional number(required)Identificador de la fase
- failure
optional string(required)Nombre de la falla
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"deleted": 35
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Ver Examen en error ¶
Este serviciio devuelve la información de un examen con error específico.
errorentryPOST/digitalizations/errorentry{?filename,failure,sessionid}
Example URI
- filename
required string(required)Nombre del archivo
- failure
required string(required)Nombre del error
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"image": "https://getimage...", // url a la imagen del examen
"error": "error", // viene vacío si proviene de un examen asignado
"event": {
"id": 1,
"name": "Evento UNO"
},
"phase": {
"id": 1,
"name": "Fase UNO"
}
},
"grades": [
{
"id": 1,
"name": "1er Grado"
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Buscar Alumno ¶
Busca los alumnos que que coincidan con los criterios de phaseid, gradeid y search, que no tengan testtaker asignado o lo tengan pero modalidad presencial
findpupilPOST/digitalizations/findpupil{?phaseid,gradeid,search,sessionid}
Example URI
- phaseid
required number(required)Identificador de la fase
- gradeid
required number(required)Identificador del grado
- search
required string(required)Búsqueda por nombre y apellido mas código.
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"records": [
{
"testtakerid": 1, // 0 si no se consigue
"pupil": {
"id": 1,
"code": "000001",
"fullname": "Pedro Pérez"
},
"school": {
"id": 1,
"name": "Colegio UNO"
},
"test": {
"id": 1,
"name": "Examen UNO"
},
"statename": "Miranda",
},
...
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Obtener Alumno ¶
Obtiene los datos de un alumno ya registrado
getpupilPOST/digitalizations/getpupil{?testtakerid,failure,sessionid}
Example URI
- testtakerid
required number(required)Identificador del tomador del examen
- failure
required string(required)“-” no hay error. Indica el error desde el que se llama
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": [
{
"testtakerid": 1,
"pupil": {
"id": 1,
"code": "000001",
"fullname": "Pedro Pérez"
},
"test": {
"id": 1,
"name": "Examen UNO",
"questions": 22
},
"school": {
"id": 1,
"name": "Colegio UNO"
},
"statename": "Miranda",
"answers": [
{
"question": {
"ord": 1,
"response": 1, // un número del 1 al 5 0=no respondida
"correct": 3, // indica cuál es la respuesta correcta
}
},
...
],
"image": "https://getimage...", // url a la imagen del examen
},
...
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}404Headers
Content-Type: application/jsonBody
{
"msg": "No encontrado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Desasignar Alumno ¶
Des asigna un alumno de una imagen y envía la imagen como un error de “Mala asignación”
unsetpupilPOST/digitalizations/unsetpupil{?testtakerid,sessionid}
Example URI
- testtakerid
required number(required)Identificador del tomador del examen
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"testtakerid": 1
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}404Headers
Content-Type: application/jsonBody
{
"msg": "No encontrado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Leer Imagen ¶
Lee un imagen de archivo y devuelve la información detectada
readtestPOST/digitalizations/readtest{?image,phaseid,failure,sessionid}
Example URI
- image
required string(required)Imagen que contiene el examen
- phaseid
optional number(required)Identificador de la fase
- failure
required string(required)“-” si no se llama desde un error. Error desde el que se está llamando
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": [
{
"testtakerid": 1,
"pupil": {
"id": 1, // devolver en 0 si no se consigue
"code": "000001", // devolver "" si no se consigue
"fullname": "Pedro Pérez" // devolver "" si no se consigue
},
"test": {
"id": 1, // devolver en 0 si no se consigue
"name": "Prueba UNO" // devolver "" si no se consigue
},
"grade": {
"id": 1, // devolver en 0 si no se consigue
"name": "Grado UNO" // devolver "" si no se consigue
},
"school": {
"id": 1, // devolver en 0 si no se consigue
"name": "Colegio UNO" // devolver "" si no se consigue
},
"statename": "Miranda", // devolver "" si no se consigue
"answers": [ // devolver [] si no se consigue
{
"question": {
"ord": 1,
"response": 1, // un número del 1 al 5 0=no respondida
"correct": 3, // indica cuál es la respuesta correcta
}
},
...
],
"image": "https://getimage...", // url a la imagen del examen
},
...
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}404Headers
Content-Type: application/jsonBody
{
"msg": "No encontrado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Guardar Examen ¶
Actualiza o crea las respuestas de un examen
readtestPOST/digitalizations/savetest{?testtakerid,phaseid,pupilid,responses,filename,failure,sessionid}
Example URI
- testtakerid
required number(required)Identificador del testtaker a actualizar. 0=si es nuevo
- phaseid
optional number(required)Identificador de la fase
- pupilid
required number(required)Identificador del alumno
- responses
required string(required)Listado de las respuestas a cada preguta siempre debe haber 30 (Ej. 1,2,4,3,5,3,2,0,2,3,3,1,2…) 0=no hay respuesta
- filename
required string(required)Nombre del archivo
- failure
required string(required)Nombre del error
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"testtakerid": 12 // identificador creado o actualizado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}404Headers
Content-Type: application/jsonBody
{
"msg": "No encontrado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Inscripciones ¶
Servicios relacionados con Inscripciones
Listado de Grados ¶
Hace una carga y validación a la tabla movephaseload
validatePOST/inscriptions/movephase/validate{eventid,pupilcodes,sessionid}
Example URI
- eventid
required number(required)Identificados del evento
- pupilcodes
required string(required)Lista de los códigos de los alumnos (con CRC) a movilizar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"resume": [
{
"error": true,
"name": "Alumnos no encontrados",
"qty": 134
},
...
{
"error": false,
"name": "Alumnos no Fase UNO",
"qty": 35
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Grados ¶
Hace una el movimiento de fases de los alumnos en la tabla movephaseload
executePOST/inscriptions/movephase/execute{eventphasefromid,eventphasetoid,sessionid}
Example URI
- eventphasefromid
required number(required)Identificador de la fase de origen
- eventphasetoid
required number(required)Identificador de la fase de destino
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"total": 350
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listado de Pagos ¶
Este servicio obtiene una lista de los pagos existentes para un evento
listPOST/inscriptions/payments/list{?filter,eventid,schoolid,accountid,statusid,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre, referencia
- eventid
required number(required)Identificador del evento
- schoolid
required number(required)filtra por el colegio 0=todos
- accountid
required number(required)filtra por el la cuenta 0=todas
- statusid
required number(required)filtra por el estatus -1=Todos, 0=Sin Validar, 1=Validados
- order
required number(required)1=id, 2=fecha, 3=colegio, 4=cuenta, 5=referencia, 6=monto (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"date": {
"date": "2025-01-01 23:00",
"formatted": "01/01/2024"
},
"school": {
"id": 1,
"name": "Colegio UNO"
},
"account": {
"id": 1,
"name": "Cuenta UNO",
"details": "Detalles de la cuenta",
"currency": "VES",
},
"amount": {
"number": 1234.5678,
"formatted": "1.234,57",
},
"xrate": {
"number": 1234.5678,
"formatted": "1.234,57"
},
"pupils": 123,
"status": {
"id": 0, // =0=Sin verificar, 1=Verificado
"name": "Sin Verificar"
}
},
...
],
"accounts": [
{
"id": 1,
"name": "Cuenta UNO",
"details": "Detalles de la cuenta",
"currency": "VES",
"abbr": "Bs."
},
...
],
"currencies": [
{
"id": "USD",
"name": "Dólares",
"abbr": "$",
"reference": true
},
{
"id": "VES",
"name": "Bolívares",
"abbr": "Bs.",
"xrate": "185.39",
"reference": false
}
],
"privileges": {
"create": true,
"delete": true,
"update": true,
"list": true
}
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Un Pago ¶
Este servicio obtiene una pago específico
entryPOST/inscriptions/payments/entry{?id,sessionid}
Example URI
- id
required number(required)Identificador del Pago
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"entry": {
"id": 1,
"date": {
"date": "2025-01-01 23:00",
"formatted": "01/01/2024"
},
"school": {
"id": 1,
"name": "Colegio UNO"
},
"account": {
"id": 1,
"name": "Cuenta UNO",
"details": "Detalles de la cuenta",
"currency": "VES",
},
"amount": {
"number": 1234.5678,
"formatted": "1.234,57",
},
"xrate": {
"number": 1234.5678,
"formatted": "1.234,57"
},
"pupilamount": 123, // monto por alumno
"eventid": 1,
"status": {
"id": 0, // =0=Sin verificar, 1=Verificado
"name": "Sin Verificar"
}
},
"accounts": [
{
"id": 1,
"name": "Cuenta UNO",
"details": "Detalles de la cuenta",
"currency": "VES",
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Incluir o modificar un Pago ¶
Este servicio permitirá incluir o modificar un pago
updatePOST/inscriptions/payments/update{?id,eventid,date,schoolid,pupilsqty,accountid,ref,amount,statusid,sessionid}
Example URI
- id
required number(required)Identificador del pago. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- eventid
required number(required)Identificador del evento
- date
required string(required)Fecha del pago (Formsto ‘YYYY-MM-DD HHMM’)
- schoolid
required number(required)Identificador del colegio
- pupilsqty
required number(required)Número de alumnos cancelados
- accountid
required number(required)Identificador de la cuenta
- ref
optional string(required)Referencia de la transaccipn
- amount
required number(required)Monto Ej. 123.45
- statusid
required number(required)0=por validar, 1=validado
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Pago ¶
Permite eliminar un pago determinado. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/inscriptions/payments/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador del pago que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Hacer un Contacto Usuario ¶
Este servicio permitirá validar o no un pago.
validatePOST/inscriptions/payments/validate{?id,status,sessionid}
Example URI
- id
required number(required)Identificador del pago.
- status
required number(required)0=desvalidar, 0=validar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Sistema ¶
Servicios relacionados con el Sistema y su configuración
Listar Preferencias ¶
Este servicio obtiene una lista de l as preferencias
listPOST/system/prefs/list{?filter,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre
- order
required number(required)1=Nombre, 2=ID (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Preferencia UNO",
"type": {
"id": 0, // 0=texto,1=entero,2=fecha,3=decimal
"name": "Texto",
},
"value": "xxxxxxxxxxxxx"
},
...
]
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Actualizar una Preferencia ¶
Este servicio permitirá incluir o modificar una preferencia
updatePOST/system/prefs/update{?id,name,value,sessionid}
Example URI
- id
required number(required)Identificador de la preferencia. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre de la Preferencia (Solo para crear)
- value
required string(required)Valor de la preferencia
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Una Preferencia ¶
Permite eliminar una preferencia determinada solo si tiene el systempref==0. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/system/prefs/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador de la preferencia que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listar Cuentas ¶
Este servicio obtiene una lista de las Cuentas
listPOST/system/accounts/list{?filter,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre,detalles y moneda
- order
required number(required)1=Nombre, 1=Moneda, 2=Estatus, 99=id (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"name": "Cuenta UNO",
"details": "",
"currency": {
"id": "USD", // "USD" o "VES"
"name": "Dólares",
"abbr": "$",
},
"status": {
"id": 1,
"dsc": "Activa"
},
},
...
],
"currencies": [
{
"id": "USD",
"name": "Dólares",
"abbr": "$",
"reference": true
},
{
"id": "VES",
"name": "Bolívares",
"abbr": "Bs.",
"xrate": "185.39",
"reference": false
}
],
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Actualizar una Cuenta ¶
Este servicio permitirá incluir o modificar una cuenta
updatePOST/system/accounts/update{?id,name,details,currencyid,status,sessionid}
Example URI
- id
required number(required)Identificador de la cuenta. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- name
required string(required)Nombre de la Cuenta
- details
required string(required)Detalles de la Cuenta
- currencyid
required string(required)Identificador de la moneda
- status
required number(required)Estatus 0=Inactivo, 1=Activo
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Una Cuenta ¶
Permite eliminar una cuenta determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/system/accounts/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador de la cuenta que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Listar Tasas Cambiarias ¶
Este servicio obtiene una lista de las Tasas de cambio
listPOST/system/xrates/list{?filter,order,offset,numofrec,sessionid}
Example URI
- filter
optional string(required)Se establece un filtro por el nombre
- order
required number(required)1=Nombre, 1=Fecha (Usar valores negativos para orden descendente)
- offset
required number(required)Registro desde el que se empieza a mostrar el listado (el primero es 0)
- numofrec
required number(required)Número de registros mostrar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"id": 1,
"date": {
"date": "2025-12-23 23:59",
"formatted": "23/12/2025 11:59pm"
},
"xrate": {
"value": 1234.4545,
"formatted": "1.234,46"
},
"currency": {
"id": "USD", // "USD" o "VES"
"name": "Dólares",
"abbr": "$",
}
},
...
],
"currencies": [
{
"id": "USD",
"name": "Dólares",
"abbr": "$",
"reference": true
},
{
"id": "VES",
"name": "Bolívares",
"abbr": "Bs.",
"xrate": "185.39",
"reference": false
}
],
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Actualizar una Tasa ¶
Este servicio permitirá incluir o modificar una tasa
updatePOST/system/xrates/update{?id,date,xrate,currencyid,sessionid}
Example URI
- id
required number(required)Identificador de la tasa. Para incluirlo se debe enviar el ID en 0, si el ID es distinto de 0 se asume que es una modificación.
- date
required string(required)Fecha (Ej “2025-12-23 23:59”)
- xrate
required number(required)Tasa (Ej 1234.5678)
- currencyid
required string(required)Identificador de la moneda
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID modificado o incluido
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}409Headers
Content-Type: application/jsonBody
{
"msg": "Duplicado"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Eliminar Una Tasa ¶
Permite eliminar una tasa determinada. La respuesta 204 es cuando no se encuentra el registro. La respuesta 304 es cuando aunque se encuentra, no se puede borrar por alguna razón
deletePOST/system/xrates/delete{?id,sessionid}
Example URI
- id
required number(required)Identificador de la tasa que se desea eliminar
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"id" : 1 // ID eliminado
}400Headers
Content-Type: application/jsonBody
{
"msg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Dashboard ¶
Servicios relacionados con el Dashboard del Sistema
Estatus de Inscripción ¶
Este servicio obtiene una lista de las inscripciones por estatus
inscriptionstatusPOST/dashboard/inscriptionstatus{?eventid,modalityid,sessionid}
Example URI
- eventid
required number(required)Identificador del Evento
- modalityid
required number(required)-1=Todas, 0=presencial, 1=online
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"status": "No Registrado", //No Registrado, Registrado, Pagado, Inscribiendo, Completado
"type": {
"public": 23,
"privated": 98,
"mixed": 98,
"total": 121
}
},
...
],
"totals": {
"public": 23,
"privated": 98,
"mixed": 98,
"total": 121
}
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Cantidad de Alumnos Inscritos ¶
Este servicio obtiene una lista de la cantidad de alumnos inscritos
inscriptedpupilsPOST/dashboard/inscriptedpupils{?eventid,modalityid,sessionid}
Example URI
- eventid
required number(required)Identificador del Evento
- modalityid
required number(required)-1=Todas, 0=presencial, 1=online
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"grade": "1er Grado",
"type": {
"public": 23,
"privated": 98,
"mixed": 98,
"total": 121
}
},
...
],
"totals": {
"public": 23,
"privated": 98,
"mixed": 98,
"total": 121
}
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Cantidad de Colegios Inscritos por Estado ¶
Este servicio obtiene una lista de la cantidad de colegios inscritos por estados
inscriptedschoolsbystatePOST/dashboard/inscriptedschoolsbystate{?eventid,modalityid,sessionid}
Example URI
- eventid
required number(required)Identificador del Evento
- modalityid
required number(required)-1=Todas, 0=presencial, 1=online
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"grade": "Miranda",
"type": {
"public": 23,
"privated": 98,
"mixed": 98,
"total": 121
}
},
...
],
"totals": {
"public": 23,
"privated": 98,
"mixed": 98,
"total": 121
}
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}Cantidad de Alumnos Inscritos por Estado ¶
Este servicio obtiene una lista de la cantidad de alumnos inscritos por estados
inscriptedpupilsbystatePOST/dashboard/inscriptedpupilsbystate{?eventid,modalityid,sessionid}
Example URI
- eventid
required number(required)Identificador del Evento
- modalityid
required number(required)-1=Todas, 0=presencial, 1=online
- sessionid
required string(required)número de la sessión loggeada
200Headers
Content-Type: application/jsonBody
{
"numofrecords": 3,
"records": [
{
"state": "Región Capital",
"grades": [
{
"id": 1,
"name": "1er Grado",
"qty": 54
},
...
],
"total": 54
},
...
],
"totals": [
{
"id": 1,
"name": "1er Grado",
"qty": 54
},
...
],
"total": 54
}400Headers
Content-Type: application/jsonBody
{
"errmsg": "Descripción del mensaje de error"
}401Headers
Content-Type: application/jsonBody
{
"msg": "Sesión expirada o inválida"
}403Headers
Content-Type: application/jsonBody
{
"msg": "No tiene Privilegios"
}500Headers
Content-Type: application/jsonBody
{
"msg": "Descripcion del error"
}