TurnEpelsa.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.BodyTurnEpelsaPost
import io.swagger.client.models.RespuestaOkTurnEpelsa
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._409
import io.swagger.client.models._422
import io.swagger.client.models._500
import io.swagger.client.models._503

import io.swagger.client.infrastructure.*

class TurnEpelsaApi(basePath: kotlin.String = "http://{IP}/gmedia/api/") : ApiClient(basePath) {

    /**
     * Almacena los datos de los tickets obtenidos de Epelsa
     * La función de 'turnEpelsa' es la de registrar los tickets que se obtengan de Epelsa que estén cerrados 
	 * para insertar los datos en la BD. Para ello, se reciben los datos del ticket y se comprueba si está cerrado comprobando 
	 * si el campo 'Status' es igual a '3'. Si es así, se insertan los datos en la BD.
     * @param body  
     * @return RespuestaOkTurnEpelsa
     */
    @Suppress("UNCHECKED_CAST")
    fun turnEpelsaPost(body: BodyTurnEpelsaPost): RespuestaOkTurnEpelsa {
        val localVariableBody: kotlin.Any? = body
        val localVariableConfig = RequestConfig(
                RequestMethod.POST,
                "/turnEpelsa"
        )
        val response = request(
                localVariableConfig, localVariableBody
        )

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as RespuestaOkTurnEpelsa
            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")
        }
    }
}