openapi: 3.0.3
info:
title: 'Alvamex API Documentation'
description: 'API REST para aplicación móvil con sincronización offline/online, autenticación Sanctum y gestión de usuarios.'
version: 1.0.0
contact:
name: 'API Support'
email: support@example.com
servers:
-
url: 'http://localhost'
description: 'Development Server'
tags:
-
name: Autenticación
description: "\nAPIs para registro, login y gestión de autenticación de usuarios"
-
name: Usuarios
description: "\nAPIs para gestión de usuarios y perfiles"
-
name: Sincronización
description: "\nAPIs para sincronización de datos entre la aplicación móvil y el servidor"
-
name: General
description: ''
-
name: CEDIS
description: "\nAPIs para gestionar centros de distribución (CEDIS)"
-
name: Cuestionarios
description: "\nAPIs para gestión de cuestionarios con soporte de sincronización offline"
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'Para obtener un token, haz POST a /api/auth/login con tus credenciales. El token tiene una duración de 24 horas.'
security:
-
default: []
paths:
/api/auth/register:
post:
summary: 'Registrar nuevo usuario'
operationId: registrarNuevoUsuario
description: 'Crea una nueva cuenta de usuario con autenticación Sanctum.'
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
message: 'Usuario registrado exitosamente'
data:
user:
id: 1
name: 'Juan Pérez'
email: juan@example.com
status: active
token: 1|abcdefghijklmnop
offline_token: xyz789
session_id: 1
expires_at: '2024-02-15T10:00:00.000000Z'
properties:
success:
type: boolean
example: true
message:
type: string
example: 'Usuario registrado exitosamente'
data:
type: object
properties:
user:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Juan Pérez'
email:
type: string
example: juan@example.com
status:
type: string
example: active
token:
type: string
example: 1|abcdefghijklmnop
offline_token:
type: string
example: xyz789
session_id:
type: integer
example: 1
expires_at:
type: string
example: '2024-02-15T10:00:00.000000Z'
tags:
- Autenticación
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nombre completo del usuario.'
example: 'Juan Pérez'
nullable: false
email:
type: string
description: 'Email del usuario.'
example: juan@example.com
nullable: false
password:
type: string
description: 'Contraseña (mínimo 8 caracteres).'
example: Password123!
nullable: false
password_confirmation:
type: string
description: 'The value and password must match.'
example: consequatur
nullable: false
phone_number:
type: string
description: 'Número de teléfono.'
example: '+52 555 123 4567'
nullable: true
device_id:
type: string
description: 'ID del dispositivo.'
example: abc123def456
nullable: true
device_name:
type: string
description: 'Nombre del dispositivo.'
example: 'Samsung Galaxy S21'
nullable: true
device_type:
type: string
description: 'Tipo de dispositivo.'
example: android
nullable: true
app_version:
type: string
description: 'Versión de la app.'
example: 1.0.0
nullable: true
is_offline_capable:
type: boolean
description: 'Soporte offline.'
example: true
nullable: false
preferences:
type: object
description: ''
example: null
nullable: true
properties:
theme:
type: string
description: ''
example: dark
nullable: true
enum:
- light
- dark
- auto
language:
type: string
description: 'Must not be greater than 5 characters.'
example: bzvrb
nullable: true
notifications:
type: boolean
description: ''
example: true
nullable: false
auto_sync:
type: boolean
description: ''
example: true
nullable: false
sync_frequency:
type: string
description: ''
example: realtime
nullable: true
enum:
- realtime
- hourly
- daily
- manual
accept_terms:
type: boolean
description: 'Must be accepted.'
example: true
nullable: false
accept_privacy:
type: boolean
description: 'Must be accepted.'
example: true
nullable: false
timezone:
type: string
description: 'Must not be greater than 50 characters.'
example: America/Punta_Arenas
nullable: true
referral_code:
type: string
description: 'Must not be greater than 20 characters.'
example: znkygloigmkwxphlv
nullable: true
required:
- name
- email
- password
- password_confirmation
- accept_terms
- accept_privacy
security: []
/api/auth/login:
post:
summary: 'Iniciar sesión'
operationId: iniciarSesin
description: 'Autentica un usuario y retorna un token de acceso.'
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
message: 'Inicio de sesión exitoso'
data:
user:
id: 1
name: 'Juan Pérez'
email: juan@example.com
token: 1|abcdefghijklmnop
offline_token: xyz789
session_id: 1
expires_at: '2024-02-15T10:00:00.000000Z'
properties:
success:
type: boolean
example: true
message:
type: string
example: 'Inicio de sesión exitoso'
data:
type: object
properties:
user:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Juan Pérez'
email:
type: string
example: juan@example.com
token:
type: string
example: 1|abcdefghijklmnop
offline_token:
type: string
example: xyz789
session_id:
type: integer
example: 1
expires_at:
type: string
example: '2024-02-15T10:00:00.000000Z'
422:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
message: 'Credenciales incorrectas'
properties:
success:
type: boolean
example: false
message:
type: string
example: 'Credenciales incorrectas'
tags:
- Autenticación
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'Email del usuario.'
example: juan@example.com
nullable: false
password:
type: string
description: Contraseña.
example: Password123!
nullable: false
device_id:
type: string
description: 'ID del dispositivo.'
example: abc123def456
nullable: true
device_name:
type: string
description: 'Nombre del dispositivo.'
example: 'Samsung Galaxy S21'
nullable: true
device_type:
type: string
description: 'Tipo de dispositivo.'
example: android
nullable: true
app_version:
type: string
description: 'Versión de la app.'
example: 1.0.0
nullable: true
revoke_other_tokens:
type: boolean
description: 'Revocar otros tokens activos.'
example: false
nullable: false
is_offline_capable:
type: boolean
description: ''
example: false
nullable: false
remember_me:
type: boolean
description: ''
example: true
nullable: false
timezone:
type: string
description: 'Must not be greater than 50 characters.'
example: Europe/Moscow
nullable: true
language:
type: string
description: 'Must not be greater than 5 characters.'
example: rbyic
nullable: true
required:
- email
- password
security: []
/api/auth/forgot-password:
post:
summary: "Solicitar recuperación de contraseña\nPOST /api/auth/forgot-password"
operationId: solicitarRecuperacinDeContraseaPOSTapiauthforgotPassword
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Autenticación
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'Must be a valid email address. The email of an existing record in the users table. Must not be greater than 255 characters.'
example: qkunze@example.com
nullable: false
device_id:
type: string
description: 'Must not be greater than 100 characters.'
example: opfuudtdsufvyvddqamni
nullable: true
device_type:
type: string
description: ''
example: android
nullable: true
enum:
- android
- ios
- web
app_version:
type: string
description: 'Must not be greater than 20 characters.'
example: hfqcoynlazghdtqtq
nullable: true
language:
type: string
description: 'Must not be greater than 5 characters.'
example: xbajw
nullable: true
timezone:
type: string
description: 'Must not be greater than 50 characters.'
example: Africa/Kampala
nullable: true
required:
- email
security: []
/api/auth/reset-password:
post:
summary: "Resetear contraseña con token\nPOST /api/auth/reset-password"
operationId: resetearContraseaConTokenPOSTapiauthresetPassword
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Autenticación
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'Must be a valid email address.'
example: qkunze@example.com
nullable: false
token:
type: string
description: ''
example: consequatur
nullable: false
password:
type: string
description: 'Must be at least 8 characters.'
example: '[2UZ5ij-e/dl4'
nullable: false
required:
- email
- token
- password
security: []
'/api/auth/verify-email/{token}':
get:
summary: "Verificar email del usuario\nGET /api/auth/verify-email/{token}"
operationId: verificarEmailDelUsuarioGETapiauthverifyEmailtoken
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
500:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Server Error'
properties:
message:
type: string
example: 'Server Error'
tags:
- Autenticación
security: []
parameters:
-
in: path
name: token
description: ''
example: consequatur
required: true
schema:
type: string
/api/auth/profile:
get:
summary: "Obtener perfil del usuario autenticado\nGET /api/auth/profile"
operationId: obtenerPerfilDelUsuarioAutenticadoGETapiauthprofile
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Autenticación
security: []
/api/auth/logout:
post:
summary: 'Cerrar sesión'
operationId: cerrarSesin
description: 'Cierra la sesión actual y revoca el token de acceso.'
parameters:
-
in: header
name: X-Session-ID
description: ''
example: 'string ID de la sesión activa. Example: 123'
schema:
type: string
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
message: 'Sesión cerrada exitosamente'
properties:
success:
type: boolean
example: true
message:
type: string
example: 'Sesión cerrada exitosamente'
tags:
- Autenticación
/api/auth/logout-all:
post:
summary: "Cerrar todas las sesiones del usuario\nPOST /api/auth/logout-all"
operationId: cerrarTodasLasSesionesDelUsuarioPOSTapiauthlogoutAll
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Autenticación
security: []
/api/auth/refresh:
post:
summary: "Renovar token de autenticación\nPOST /api/auth/refresh"
operationId: renovarTokenDeAutenticacinPOSTapiauthrefresh
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Autenticación
security: []
/api/auth/validate-token:
get:
summary: "Validar y verificar estado del token\nGET /api/auth/validate-token\nPOST /api/auth/validate-token"
operationId: validarYVerificarEstadoDelTokenGETapiauthvalidateTokenPOSTapiauthvalidateToken
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Autenticación
security: []
/api/auth/check-token:
get:
summary: "DEPRECATED: Usar validateToken en su lugar\nGET /api/auth/check-token"
operationId: dEPRECATEDUsarValidateTokenEnSuLugarGETapiauthcheckToken
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Autenticación
security: []
/api/users:
get:
summary: 'Listar usuarios'
operationId: listarUsuarios
description: 'Obtiene la lista de usuarios (solo administradores).'
parameters:
-
in: query
name: page
description: 'Número de página.'
example: 1
required: false
schema:
type: integer
description: 'Número de página.'
example: 1
nullable: false
-
in: query
name: per_page
description: 'Registros por página (max 100).'
example: 15
required: false
schema:
type: integer
description: 'Registros por página (max 100).'
example: 15
nullable: false
-
in: query
name: search
description: 'Búsqueda por nombre o email.'
example: juan
required: false
schema:
type: string
description: 'Búsqueda por nombre o email.'
example: juan
nullable: false
-
in: query
name: status
description: 'Filtrar por estado (active, inactive, suspended).'
example: active
required: false
schema:
type: string
description: 'Filtrar por estado (active, inactive, suspended).'
example: active
nullable: false
-
in: query
name: role
description: 'Filtrar por rol (user, admin, moderator).'
example: user
required: false
schema:
type: string
description: 'Filtrar por rol (user, admin, moderator).'
example: user
nullable: false
-
in: query
name: sort_by
description: 'Ordenar por campo.'
example: created_at
required: false
schema:
type: string
description: 'Ordenar por campo.'
example: created_at
nullable: false
-
in: query
name: sort_order
description: 'Orden (asc, desc).'
example: desc
required: false
schema:
type: string
description: 'Orden (asc, desc).'
example: desc
nullable: false
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
current_page: 1
data:
-
id: 1
name: 'Juan Pérez'
email: juan@example.com
status: active
role: user
total: 50
properties:
success:
type: boolean
example: true
data:
type: object
properties:
current_page:
type: integer
example: 1
data:
type: array
example:
-
id: 1
name: 'Juan Pérez'
email: juan@example.com
status: active
role: user
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Juan Pérez'
email:
type: string
example: juan@example.com
status:
type: string
example: active
role:
type: string
example: user
total:
type: integer
example: 50
403:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
message: 'Sin permisos para ver usuarios'
properties:
success:
type: boolean
example: false
message:
type: string
example: 'Sin permisos para ver usuarios'
tags:
- Usuarios
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
page:
type: integer
description: 'Must be at least 1.'
example: 73
nullable: false
per_page:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 13
nullable: false
search:
type: string
description: 'Must not be greater than 100 characters.'
example: qeopfuudtdsufvyvddqam
nullable: false
status:
type: string
description: ''
example: suspended
nullable: false
enum:
- active
- inactive
- suspended
role:
type: string
description: ''
example: user
nullable: false
enum:
- user
- admin
- moderator
sort_by:
type: string
description: ''
example: name
nullable: false
enum:
- name
- email
- created_at
- last_login_at
sort_order:
type: string
description: ''
example: desc
nullable: false
enum:
- asc
- desc
'/api/users/{id}':
get:
summary: "Mostrar usuario específico\nGET /api/users/{id}"
operationId: mostrarUsuarioEspecficoGETapiusersid
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Usuarios
security: []
put:
summary: "Actualizar perfil del usuario\nPUT /api/users/{id}"
operationId: actualizarPerfilDelUsuarioPUTapiusersid
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Usuarios
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
email:
type: string
description: 'Must be a valid email address.'
example: kunde.eloisa@example.com
nullable: false
phone_number:
type: string
description: 'Must not be greater than 20 characters.'
example: hfqcoynlazghdtqtq
nullable: true
password:
type: string
description: 'Must be at least 8 characters.'
example: "(!Cs'YAKYLk4>SJIrIV"
nullable: true
security: []
delete:
summary: "Eliminar usuario (soft delete)\nDELETE /api/users/{id}"
operationId: eliminarUsuariosoftDeleteDELETEapiusersid
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Usuarios
security: []
parameters:
-
in: path
name: id
description: 'The ID of the user.'
example: consequatur
required: true
schema:
type: string
'/api/users/{id}/preferences':
put:
summary: "Actualizar preferencias del usuario\nPUT /api/users/{id}/preferences"
operationId: actualizarPreferenciasDelUsuarioPUTapiusersidpreferences
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Usuarios
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
preferences:
type: object
description: ''
example: []
nullable: false
properties: { }
merge:
type: boolean
description: ''
example: false
nullable: false
required:
- preferences
security: []
parameters:
-
in: path
name: id
description: 'The ID of the user.'
example: consequatur
required: true
schema:
type: string
'/api/users/{id}/profile-photo':
post:
summary: "Subir foto de perfil\nPOST /api/users/{id}/profile-photo"
operationId: subirFotoDePerfilPOSTapiusersidprofilePhoto
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Usuarios
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
photo:
type: string
format: binary
description: 'Must be an image. Must not be greater than 2048 kilobytes.'
nullable: false
required:
- photo
security: []
parameters:
-
in: path
name: id
description: 'The ID of the user.'
example: consequatur
required: true
schema:
type: string
'/api/users/{id}/sessions':
get:
summary: "Obtener sesiones activas del usuario\nGET /api/users/{id}/sessions"
operationId: obtenerSesionesActivasDelUsuarioGETapiusersidsessions
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Usuarios
security: []
parameters:
-
in: path
name: id
description: 'The ID of the user.'
example: consequatur
required: true
schema:
type: string
'/api/users/{id}/sessions/{sessionId}':
delete:
summary: "Revocar sesión específica\nDELETE /api/users/{id}/sessions/{sessionId}"
operationId: revocarSesinEspecficaDELETEapiusersidsessionssessionId
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Usuarios
security: []
parameters:
-
in: path
name: id
description: 'The ID of the user.'
example: consequatur
required: true
schema:
type: string
-
in: path
name: sessionId
description: ''
example: consequatur
required: true
schema:
type: string
/api/sync/upload:
post:
summary: 'Cargar datos desde el cliente'
operationId: cargarDatosDesdeElCliente
description: 'Recibe datos del cliente Android para sincronizar con el servidor.'
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
message: 'Sincronización completada'
data:
processed: 5
failed: 0
properties:
success:
type: boolean
example: true
message:
type: string
example: 'Sincronización completada'
data:
type: object
properties:
processed:
type: integer
example: 5
failed:
type: integer
example: 0
tags:
- Sincronización
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
sync_items:
type: array
description: 'Items a sincronizar.'
example:
-
sync_type: CREATE
table_name: questionnaires
data: { }
timestamp: 1234567890
items:
type: string
device_id:
type: string
description: 'ID del dispositivo.'
example: abc123
nullable: false
session_id:
type: string
description: 'ID de la sesión.'
example: xyz789
nullable: true
required:
- sync_items
- device_id
/api/sync/download:
post:
summary: "Enviar actualizaciones al cliente\nPOST /api/sync/download"
operationId: enviarActualizacionesAlClientePOSTapisyncdownload
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Sincronización
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
last_sync:
type: integer
description: 'Must be at least 0.'
example: 73
nullable: true
device_id:
type: string
description: 'CAMBIADO: nullable en lugar de required.'
example: consequatur
nullable: false
tables:
type: array
description: ''
example:
- notifications
items:
type: string
enum:
- users
- questionnaires
- settings
- notifications
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 16
nullable: true
required:
- device_id
security: []
/api/sync/status:
get:
summary: "Obtener estado de sincronización\nGET /api/sync/status"
operationId: obtenerEstadoDeSincronizacinGETapisyncstatus
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Sincronización
security: []
/api/sync/queue:
post:
summary: "Gestionar cola de sincronización\nPOST /api/sync/queue"
operationId: gestionarColaDeSincronizacinPOSTapisyncqueue
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Sincronización
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
action:
type: string
description: ''
example: list
nullable: false
enum:
- add
- remove
- clear
- list
sync_type:
type: string
description: 'This field is required when action is add.'
example: UPDATE
nullable: false
enum:
- CREATE
- UPDATE
- DELETE
- UPLOAD
- DOWNLOAD
table_name:
type: string
description: 'This field is required when action is add.'
example: consequatur
nullable: false
data:
type: string
description: 'This field is required when action is add.'
example: null
nullable: false
queue_id:
type: integer
description: 'This field is required when action is remove.'
example: 17
nullable: false
priority:
type: integer
description: 'Must be at least 1. Must not be greater than 3.'
example: 2
nullable: true
object_id:
type: integer
description: ''
example: 17
nullable: true
required:
- action
security: []
/api/sync/bulk:
post:
summary: "Sincronización masiva (batch)\nPOST /api/sync/bulk"
operationId: sincronizacinMasivabatchPOSTapisyncbulk
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Sincronización
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
operations:
type: array
description: 'Must have at least 1 items. Must not have more than 100 items.'
example:
- []
items:
type: object
properties:
type:
type: string
description: ''
example: download
nullable: false
enum:
- upload
- download
data:
type: string
description: ''
example: consequatur
nullable: false
required:
- type
- data
device_id:
type: string
description: ''
example: consequatur
nullable: false
required:
- operations
- device_id
security: []
/api/sync/conflict:
post:
summary: "Resolver conflictos de datos\nPOST /api/sync/conflict"
operationId: resolverConflictosDeDatosPOSTapisyncconflict
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Sincronización
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
conflicts:
type: array
description: 'Must have at least 1 items.'
example:
- []
items:
type: object
properties:
sync_log_id:
type: integer
description: ''
example: 17
nullable: false
resolution:
type: string
description: ''
example: skip
nullable: false
enum:
- client_wins
- server_wins
- merge
- skip
merged_data:
type: string
description: 'This field is required when conflicts.*.resolution is merge.'
example: null
nullable: false
required:
- sync_log_id
- resolution
required:
- conflicts
security: []
/api/sync/questionnaires/status:
get:
summary: "Endpoint específico para cuestionarios\nGET /api/sync/questionnaires/status"
operationId: endpointEspecficoParaCuestionariosGETapisyncquestionnairesstatus
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Sincronización
security: []
'/api/sync/logs/{userId}':
get:
summary: ''
operationId: getApiSyncLogsUserId
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
parameters:
-
in: path
name: userId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/sync/clear/{userId}':
delete:
summary: ''
operationId: deleteApiSyncClearUserId
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- General
security: []
parameters:
-
in: path
name: userId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/sync/questionnaires/debug/{userId}':
get:
summary: ''
operationId: getApiSyncQuestionnairesDebugUserId
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
parameters:
-
in: path
name: userId
description: ''
example: consequatur
required: true
schema:
type: string
/api/questionnaires/android/list:
get:
summary: ''
operationId: getApiQuestionnairesAndroidList
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/questionnaires/android/unsynced:
get:
summary: ''
operationId: getApiQuestionnairesAndroidUnsynced
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/me:
get:
summary: ''
operationId: getApiMe
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
put:
summary: ''
operationId: putApiMe
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- General
security: []
/api/me/preferences:
put:
summary: ''
operationId: putApiMePreferences
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- General
security: []
/api/me/profile-photo:
post:
summary: ''
operationId: postApiMeProfilePhoto
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- General
security: []
/api/me/sessions:
get:
summary: ''
operationId: getApiMeSessions
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/me/stats:
get:
summary: ''
operationId: getApiMeStats
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/me/questionnaires:
get:
summary: ''
operationId: getApiMeQuestionnaires
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/me/questionnaires/stats:
get:
summary: ''
operationId: getApiMeQuestionnairesStats
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/me/questionnaires/recent:
get:
summary: ''
operationId: getApiMeQuestionnairesRecent
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/me/questionnaires/pending-sync:
get:
summary: ''
operationId: getApiMeQuestionnairesPendingSync
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/admin/stats:
get:
summary: ''
operationId: getApiAdminStats
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/admin/questionnaires/stats:
get:
summary: ''
operationId: getApiAdminQuestionnairesStats
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/admin/cleanup:
post:
summary: ''
operationId: postApiAdminCleanup
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- General
security: []
/api/admin/users/bulk-action:
post:
summary: ''
operationId: postApiAdminUsersBulkAction
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- General
security: []
/api/notifications:
get:
summary: ''
operationId: getApiNotifications
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
'/api/notifications/mark-read/{id}':
post:
summary: ''
operationId: postApiNotificationsMarkReadId
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- General
security: []
parameters:
-
in: path
name: id
description: 'The ID of the mark read.'
example: consequatur
required: true
schema:
type: string
/api/config:
get:
summary: ''
operationId: getApiConfig
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
/api/config/questionnaires:
get:
summary: ''
operationId: getApiConfigQuestionnaires
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- General
security: []
'/api/{fallbackPlaceholder}':
get:
summary: ''
operationId: getApiFallbackPlaceholder
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
message: 'Endpoint no encontrado'
error_code: NOT_FOUND
available_endpoints:
auth: '/api/auth/{login,register,logout}'
users: /api/users
sync: '/api/sync/{upload,download,status}'
questionnaires: /api/questionnaires
me: /api/me
admin: /api/admin
questionnaire_endpoints:
list: 'GET /api/questionnaires'
create: 'POST /api/questionnaires'
show: 'GET /api/questionnaires/{id}'
update: 'PUT /api/questionnaires/{id}'
delete: 'DELETE /api/questionnaires/{id}'
stats: 'GET /api/questionnaires/stats/summary'
search: 'GET /api/questionnaires/search/query'
export: 'GET /api/questionnaires/export/data'
properties:
success:
type: boolean
example: false
message:
type: string
example: 'Endpoint no encontrado'
error_code:
type: string
example: NOT_FOUND
available_endpoints:
type: object
properties:
auth:
type: string
example: '/api/auth/{login,register,logout}'
users:
type: string
example: /api/users
sync:
type: string
example: '/api/sync/{upload,download,status}'
questionnaires:
type: string
example: /api/questionnaires
me:
type: string
example: /api/me
admin:
type: string
example: /api/admin
questionnaire_endpoints:
type: object
properties:
list:
type: string
example: 'GET /api/questionnaires'
create:
type: string
example: 'POST /api/questionnaires'
show:
type: string
example: 'GET /api/questionnaires/{id}'
update:
type: string
example: 'PUT /api/questionnaires/{id}'
delete:
type: string
example: 'DELETE /api/questionnaires/{id}'
stats:
type: string
example: 'GET /api/questionnaires/stats/summary'
search:
type: string
example: 'GET /api/questionnaires/search/query'
export:
type: string
example: 'GET /api/questionnaires/export/data'
tags:
- General
security: []
parameters:
-
in: path
name: fallbackPlaceholder
description: ''
example: 2UZ5i
required: true
schema:
type: string
/api/cedis/active:
get:
summary: 'Obtener CEDIS activos'
operationId: obtenerCEDISActivos
description: 'Retorna únicamente los CEDIS que están marcados como activos, ordenados alfabéticamente por nombre.'
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
id: 1
nombre: 'CEDIS Ciudad de México'
codigo: CDMX-001
activo: true
created_at: '2024-01-15T10:00:00.000000Z'
updated_at: '2024-01-15T10:00:00.000000Z'
-
id: 2
nombre: 'CEDIS Guadalajara'
codigo: GDL-001
activo: true
created_at: '2024-01-15T10:00:00.000000Z'
updated_at: '2024-01-15T10:00:00.000000Z'
total: 2
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
id: 1
nombre: 'CEDIS Ciudad de México'
codigo: CDMX-001
activo: true
created_at: '2024-01-15T10:00:00.000000Z'
updated_at: '2024-01-15T10:00:00.000000Z'
-
id: 2
nombre: 'CEDIS Guadalajara'
codigo: GDL-001
activo: true
created_at: '2024-01-15T10:00:00.000000Z'
updated_at: '2024-01-15T10:00:00.000000Z'
items:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: 'CEDIS Ciudad de México'
codigo:
type: string
example: CDMX-001
activo:
type: boolean
example: true
created_at:
type: string
example: '2024-01-15T10:00:00.000000Z'
updated_at:
type: string
example: '2024-01-15T10:00:00.000000Z'
total:
type: integer
example: 2
500:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
message: 'Error al obtener los CEDIS activos'
error: 'Database connection failed'
properties:
success:
type: boolean
example: false
message:
type: string
example: 'Error al obtener los CEDIS activos'
error:
type: string
example: 'Database connection failed'
tags:
- CEDIS
security: []
/api/cedis:
get:
summary: 'Listar todos los CEDIS'
operationId: listarTodosLosCEDIS
description: 'Obtiene la lista completa de CEDIS con opciones de filtrado.'
parameters:
-
in: query
name: activo
description: 'Filtrar por estado activo/inactivo.'
example: true
required: false
schema:
type: boolean
description: 'Filtrar por estado activo/inactivo.'
example: true
nullable: false
-
in: query
name: search
description: 'Buscar por nombre o código.'
example: CDMX
required: false
schema:
type: string
description: 'Buscar por nombre o código.'
example: CDMX
nullable: false
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
id: 1
nombre: 'CEDIS Ciudad de México'
codigo: CDMX-001
activo: true
created_at: '2024-01-15T10:00:00.000000Z'
updated_at: '2024-01-15T10:00:00.000000Z'
total: 1
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
id: 1
nombre: 'CEDIS Ciudad de México'
codigo: CDMX-001
activo: true
created_at: '2024-01-15T10:00:00.000000Z'
updated_at: '2024-01-15T10:00:00.000000Z'
items:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: 'CEDIS Ciudad de México'
codigo:
type: string
example: CDMX-001
activo:
type: boolean
example: true
created_at:
type: string
example: '2024-01-15T10:00:00.000000Z'
updated_at:
type: string
example: '2024-01-15T10:00:00.000000Z'
total:
type: integer
example: 1
422:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
message: 'Parámetros inválidos'
errors:
activo:
- 'El campo activo debe ser verdadero o falso'
properties:
success:
type: boolean
example: false
message:
type: string
example: 'Parámetros inválidos'
errors:
type: object
properties:
activo:
type: array
example:
- 'El campo activo debe ser verdadero o falso'
items:
type: string
tags:
- CEDIS
security: []
'/api/cedis/{id}':
get:
summary: 'Obtener un CEDIS específico'
operationId: obtenerUnCEDISEspecfico
description: 'Recupera la información detallada de un CEDIS por su ID.'
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
id: 1
nombre: 'CEDIS Ciudad de México'
codigo: CDMX-001
activo: true
created_at: '2024-01-15T10:00:00.000000Z'
updated_at: '2024-01-15T10:00:00.000000Z'
properties:
success:
type: boolean
example: true
data:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: 'CEDIS Ciudad de México'
codigo:
type: string
example: CDMX-001
activo:
type: boolean
example: true
created_at:
type: string
example: '2024-01-15T10:00:00.000000Z'
updated_at:
type: string
example: '2024-01-15T10:00:00.000000Z'
404:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
message: 'CEDIS no encontrado'
properties:
success:
type: boolean
example: false
message:
type: string
example: 'CEDIS no encontrado'
tags:
- CEDIS
security: []
parameters:
-
in: path
name: id
description: 'ID del CEDIS.'
example: 1
required: true
schema:
type: integer
/api/questionnaires:
get:
summary: 'Listar cuestionarios'
operationId: listarCuestionarios
description: 'Obtiene la lista de cuestionarios del usuario con filtros y paginación.'
parameters:
-
in: query
name: page
description: 'Número de página.'
example: 1
required: false
schema:
type: integer
description: 'Número de página.'
example: 1
nullable: false
-
in: query
name: per_page
description: 'Registros por página (max 100).'
example: 20
required: false
schema:
type: integer
description: 'Registros por página (max 100).'
example: 20
nullable: false
-
in: query
name: folio
description: 'Filtrar por folio.'
example: F-001
required: false
schema:
type: string
description: 'Filtrar por folio.'
example: F-001
nullable: false
-
in: query
name: cedis
description: 'Filtrar por CEDIS.'
example: CDMX
required: false
schema:
type: string
description: 'Filtrar por CEDIS.'
example: CDMX
nullable: false
-
in: query
name: cuadrilla
description: 'Filtrar por cuadrilla.'
example: A
required: false
schema:
type: string
description: 'Filtrar por cuadrilla.'
example: A
nullable: false
-
in: query
name: sync_status
description: 'Estado de sincronización (synced, unsynced, error).'
example: synced
required: false
schema:
type: string
description: 'Estado de sincronización (synced, unsynced, error).'
example: synced
nullable: false
-
in: query
name: date_from
description: 'date Fecha desde.'
example: '2024-01-01'
required: false
schema:
type: string
description: 'date Fecha desde.'
example: '2024-01-01'
nullable: false
-
in: query
name: date_to
description: 'date Fecha hasta.'
example: '2024-01-31'
required: false
schema:
type: string
description: 'date Fecha hasta.'
example: '2024-01-31'
nullable: false
-
in: query
name: sort_by
description: 'Ordenar por (created_at, questionnaire_timestamp, folio).'
example: created_at
required: false
schema:
type: string
description: 'Ordenar por (created_at, questionnaire_timestamp, folio).'
example: created_at
nullable: false
-
in: query
name: sort_order
description: 'Orden (asc, desc).'
example: desc
required: false
schema:
type: string
description: 'Orden (asc, desc).'
example: desc
nullable: false
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
questionnaires:
-
id: 1
folio: F-001
cedis: CDMX
sync_status: synced
total: 100
page: 1
per_page: 20
properties:
success:
type: boolean
example: true
data:
type: object
properties:
questionnaires:
type: array
example:
-
id: 1
folio: F-001
cedis: CDMX
sync_status: synced
items:
type: object
properties:
id:
type: integer
example: 1
folio:
type: string
example: F-001
cedis:
type: string
example: CDMX
sync_status:
type: string
example: synced
total:
type: integer
example: 100
page:
type: integer
example: 1
per_page:
type: integer
example: 20
tags:
- Cuestionarios
post:
summary: "Crear nuevo cuestionario\nPOST /api/questionnaires"
operationId: crearNuevoCuestionarioPOSTapiquestionnaires
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Cuestionarios
security: []
'/api/questionnaires/{id}':
get:
summary: "Mostrar cuestionario específico\nGET /api/questionnaires/{questionnaire}"
operationId: mostrarCuestionarioEspecficoGETapiquestionnairesquestionnaire
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Cuestionarios
security: []
put:
summary: "Actualizar cuestionario\nPUT/PATCH /api/questionnaires/{questionnaire}"
operationId: actualizarCuestionarioPUTPATCHapiquestionnairesquestionnaire
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Cuestionarios
security: []
delete:
summary: "Eliminar cuestionario\nDELETE /api/questionnaires/{questionnaire}"
operationId: eliminarCuestionarioDELETEapiquestionnairesquestionnaire
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Cuestionarios
security: []
parameters:
-
in: path
name: id
description: 'The ID of the questionnaire.'
example: 33
required: true
schema:
type: integer
'/api/questionnaires/{questionnaire_id}':
patch:
summary: "Actualizar cuestionario\nPUT/PATCH /api/questionnaires/{questionnaire}"
operationId: actualizarCuestionarioPUTPATCHapiquestionnairesquestionnaire
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Cuestionarios
security: []
parameters:
-
in: path
name: questionnaire_id
description: 'The ID of the questionnaire.'
example: 33
required: true
schema:
type: integer
/api/questionnaires/stats/summary:
get:
summary: "Obtener estadísticas de cuestionarios\nGET /api/questionnaires/stats"
operationId: obtenerEstadsticasDeCuestionariosGETapiquestionnairesstats
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Cuestionarios
security: []
/api/questionnaires/search/query:
get:
summary: "Buscar cuestionarios\nGET /api/questionnaires/search"
operationId: buscarCuestionariosGETapiquestionnairessearch
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Cuestionarios
security: []
/api/questionnaires/export/data:
get:
summary: "Exportar cuestionarios\nGET /api/questionnaires/export"
operationId: exportarCuestionariosGETapiquestionnairesexport
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Cuestionarios
security: []
/api/questionnaires/duplicates/list:
get:
summary: "Obtener cuestionarios duplicados por folio\nGET /api/questionnaires/duplicates"
operationId: obtenerCuestionariosDuplicadosPorFolioGETapiquestionnairesduplicates
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Cuestionarios
security: []
/api/questionnaires/validate/check:
post:
summary: 'Validate the given request with the given rules.'
operationId: validateTheGivenRequestWithTheGivenRules
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Cuestionarios
security: []
/api/questionnaires/bulk/mark-synced:
post:
summary: "Marcar cuestionarios como sincronizados\nPOST /api/questionnaires/mark-synced"
operationId: marcarCuestionariosComoSincronizadosPOSTapiquestionnairesmarkSynced
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Cuestionarios
security: []
'/api/questionnaires/verify/{folio}':
get:
summary: "Verificar existencia y estado de sincronización de un cuestionario por folio y cedis\nGET /api/questionnaires/verify/{folio}?cedis=CDMX"
operationId: verificarExistenciaYEstadoDeSincronizacinDeUnCuestionarioPorFolioYCedisGETapiquestionnairesverifyfoliocedisCDMX
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Cuestionarios
security: []
parameters:
-
in: path
name: folio
description: ''
example: consequatur
required: true
schema:
type: string
'/api/questionnaires/{questionnaire_id}/reset-sync':
post:
summary: "Resetear estado de sincronización\nPOST /api/questionnaires/{questionnaire}/reset-sync"
operationId: resetearEstadoDeSincronizacinPOSTapiquestionnairesquestionnaireresetSync
description: ''
parameters:
-
in: header
name: X-Requested-With
description: ''
example: XMLHttpRequest
schema:
type: string
responses: { }
tags:
- Cuestionarios
security: []
parameters:
-
in: path
name: questionnaire_id
description: 'The ID of the questionnaire.'
example: 33
required: true
schema:
type: integer