TurnosAtendidos.kt


/**
 * API para la gestión de turnos
 * Esta API se encarga de la gestión de los turnos para las secciones que estén activadas en los dispositivos 
 * que sean de tipo 'Expendedor'. Se podrá solicitar un nuevo turno para la sección seleccionada. 
 * Para ello mostrará las secciones que estén activadas para tal fin y los mostrará en pantalla con sus colores 
 * distintivos, nombre de la sección, el turno actual, etc. También podrá mostrar los turnos ya atendidos 
 * filtrando por fecha y turno, por rango de fechas, seccion, etc. Además, también se podrá mostrar los tickets 
 * expedidos pudiendo filtrar por rango de fechas, turno y fecha, sección, terminal, etc.
 *
 * OpenAPI spec version: 3.0.1
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */
package io.swagger.client.apis

import io.swagger.client.models.RespuestaOkTurnosAtendidos
import io.swagger.client.models._400
import io.swagger.client.models._401
import io.swagger.client.models._404
import io.swagger.client.models._405
import io.swagger.client.models._500

import io.swagger.client.infrastructure.*

class TurnosAtendidosApi(basePath: kotlin.String = "http://192.180.2.38/gmedia/api/") : ApiClient(basePath) {

    /**
     * Devueleve datos de los turnos atendidos según el tipo de filtro aplicado
     * Devuelve datos relacionados con todas las secciones que tengan a 'true'
     * el campo 'Turno_seccion' de la tabla 'terminal_seccion' o una sección específica según 
	 * el valor proporcionado en el parámetro 'seccion'.
     * @param authorization Token de autenticación. 
     * @param startDate Fecha de inicio del filtro (Ejemplo: 2023-10-05 16:18:05) (optional)
     * @param endDate Fecha de fin del filtro (Ejemplo: 2023-10-18 16:42:00) (optional)
     * @param seccion ID de la sección a filtrar (Ejemplo: 9) (optional)
     * @param turno Número de turno a filtrar (Ejemplo: 277) (optional)
     * @param fecha Fecha a filtrar (Ejemplo: 2023-10-05 16:18:05) (optional)
     * @return RespuestaOkTurnosAtendidos
     */
    @Suppress("UNCHECKED_CAST")
    fun turnosAtendidosGet(authorization: kotlin.String, startDate: kotlin.String? = null, endDate: kotlin.String? = null, 
	seccion: kotlin.Int? = null, turno: kotlin.Int? = null, fecha: kotlin.String? = null): RespuestaOkTurnosAtendidos {
        val localVariableQuery: MultiValueMap = mutableMapOf>().apply {
            if (startDate != null) {
                put("start_date", listOf(startDate.toString()))
            }
            if (endDate != null) {
                put("end_date", listOf(endDate.toString()))
            }
            if (seccion != null) {
                put("seccion", listOf(seccion.toString()))
            }
            if (turno != null) {
                put("turno", listOf(turno.toString()))
            }
            if (fecha != null) {
                put("fecha", listOf(fecha.toString()))
            }
        }
        val localVariableHeaders: MutableMap = mutableMapOf()
        authorization.apply {
            localVariableHeaders["Authorization"] = this.toString()
        }
        localVariableHeaders["Accept"] = "application/json"
        val localVariableConfig = RequestConfig(
                RequestMethod.GET,
                "/turnosAtendidos", query = localVariableQuery, headers = localVariableHeaders
        )
        val response = request(
                localVariableConfig
        )

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as RespuestaOkTurnosAtendidos
            ResponseType.Informational -> TODO()
            ResponseType.Redirection -> TODO()
            ResponseType.ClientError -> throw ClientException((response as ClientError<*>).body as? String ?: "Client error")
            ResponseType.ServerError -> throw ServerException((response as ServerError<*>).message ?: "Server error")
        }
    }
}