← Volver a Back.API

RepartidoresController

Controlador para la gestión de repartidores y sus fotografías del sistema

📊 Resumen del Controlador

3
Servicios Inyectados
10
Endpoints Totales
2
Categorías Principales
CRUD
Operaciones Completas

El RepartidoresController es el controlador encargado de gestionar los repartidores del sistema RestMaster y sus fotografías asociadas. Proporciona una API RESTful completa para administrar la información de los repartidores que realizan entregas a domicilio, incluyendo la gestión de sus imágenes de identificación.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de repartidores (5 endpoints)
  • Gestión de fotos de repartidores con imágenes JPEG (5 endpoints)
  • Servicio a domicilio para gestión de entregas
  • Identificación visual de repartidores
  • Integración con facturas y pedidos de reparto

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • IRepartidoresService - Servicio principal de gestión de repartidores
  • IRepartidoresFotoService - Servicio de gestión de fotos de repartidores
  • ILogger<RepartidoresController> - Logging de errores y eventos

⚠️ Parámetros de Conexión

Todos los endpoints requieren los siguientes parámetros de conexión a la base de datos:

  • initialCatalog (string): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos

📋 Categorías de Endpoints

🚚 Gestión de Repartidores

Gestión CRUD completa de repartidores del sistema
CRUD
Delivery

Endpoints: 5 métodos

  • GET /GetRepartidores
  • GET /GetRepartidor/{id}
  • POST /AddRepartidor
  • PUT /UpdateRepartidor/{id}
  • DELETE /DeleteRepartidor/{id}
Ver detalles →

📸 Fotos de Repartidores

Gestión de imágenes de identificación de repartidores
Media
CRUD

Endpoints: 5 métodos

  • GET /GetRepartidorFoto/{id}
  • POST /AddRepartidorFoto
  • PUT /UpdateRepartidorFoto/{id}
  • DELETE /DeleteRepartidorFoto/{id}
  • GET /GetRepartidorFoto/{id} (JPEG)
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/Repartidores

Todos los endpoints del controlador están bajo la ruta /Master/Repartidores, lo que indica que maneja datos maestros del sistema relacionados con repartidores y servicio a domicilio.

Patrones de URL por Categoría:

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET, PUT, DELETE exitosos

✅ 201 - Created

Repartidor o foto creado exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Repartidor o foto no encontrado

Usado en: GET, PUT, DELETE cuando el recurso no existe

❌ 500 - Internal Server Error

Error interno del servidor

Usado en: Errores de excepción no controlados

🔍 Características Técnicas

🎯 Características del Controlador

  • Async/Await: Todos los métodos son asíncronos para mejor rendimiento
  • Swagger Documentation: Documentación completa con Swagger/OpenAPI
  • Error Handling: Manejo centralizado de excepciones con logging
  • Dependency Injection: Inyección de 3 servicios diferentes + logger
  • RESTful Design: Diseño REST completo con verbos HTTP apropiados
  • Type Safety: Uso de tipos fuertemente tipados para respuestas
  • Constructor Injection: Inyección de dependencias por constructor
  • Logging: Logging estructurado de errores y eventos
  • File Handling: Gestión de archivos de imagen JPEG

⚠️ Consideraciones de Seguridad

  • Todos los endpoints requieren parámetros de conexión a la base de datos
  • Los errores internos se loguean pero no exponen información sensible
  • Se recomienda implementar autenticación y autorización adicional
  • Validación de entrada en todos los endpoints POST/PUT
  • Validación de tipos de archivo para imágenes
  • Control de acceso a fotos de repartidores

📝 Patrones de Diseño Utilizados

  • Repository Pattern: Acceso a datos a través de servicios
  • Dependency Injection: Inversión de control para servicios
  • Async/Await Pattern: Programación asíncrona
  • Error Handling Pattern: Manejo centralizado de errores
  • RESTful API Design: Diseño de API REST estándar
  • File Service Pattern: Gestión de archivos multimedia

📈 Estadísticas Detalladas

294
Líneas de Código
1
Región de Código
10
Métodos Públicos
4
Verbos HTTP

Distribución de Métodos HTTP:

📋 Modelos de Datos

Modelo Repartidore:
  • Repartidor (double): Identificador único del repartidor
  • Nombre (string, 50 chars): Nombre completo del repartidor
Modelo RepartidorFoto:
  • Repartidor (double): ID del repartidor (clave primaria)
  • Imagen (byte[]): Datos de la imagen en formato JPEG

🔑 Relaciones entre Modelos

El modelo RepartidorFoto tiene una relación 1:1 con Repartidore a través del campo Repartidor, permitiendo que cada repartidor tenga una única foto de identificación.