/** * Traccar * Traccar GPS tracking server API documentation. To use the API you need to have a server instance. For testing purposes you can use one of free [demo servers](https://www.traccar.org/demo-server/). For production use you can install your own server or get a [subscription service](https://www.traccar.org/product/tracking-server/). * * OpenAPI spec version: 4.14 * Contact: support@traccar.org * * 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 mx.trackermap.TrackerMap.client.apis import io.ktor.content.* import mx.trackermap.TrackerMap.client.models.Event import mx.trackermap.TrackerMap.client.models.Position import mx.trackermap.TrackerMap.client.models.Stop import mx.trackermap.TrackerMap.client.models.ReportSummary import mx.trackermap.TrackerMap.client.models.ReportTrips import mx.trackermap.TrackerMap.client.infrastructure.* class ReportsApi : ApiClient() { /** * Fetch a list of Events within the time period for the Devices or Groups * At least one _deviceId_ or one _groupId_ must be passed * @param from in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param to in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param deviceId (optional) * @param groupId (optional) * @param type % can be used to return events of all types (optional) * @return kotlin.Array */ private suspend fun reportsEventsGetBase( from: String, to: String, deviceId: Int, types: List = listOf("%"), xlsx: Boolean = false ): Any { val localVariableQuery: MultiValueMap = mapOf( "deviceId" to toMultiValue(listOf(deviceId), "multi"), "from" to listOf(from), "to" to listOf(to), "type" to types ) val localVariableHeaders = mutableMapOf() if (xlsx) { localVariableHeaders["Accept"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" } val localVariableConfig = RequestConfig( RequestMethod.GET, "/reports/events", query = localVariableQuery, headers = localVariableHeaders ) val response = if (xlsx) { request( localVariableConfig ) } else { request>( localVariableConfig ) } return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data!! 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" ) } } @Suppress("UNCHECKED_CAST") suspend fun reportsEventsGet( from: String, to: String, types: List = listOf("%"), deviceId: Int, ): Array { return reportsEventsGetBase(from, to, deviceId, types, false) as Array } @Suppress("UNCHECKED_CAST") suspend fun reportsEventsGetXlsx( from: String, to: String, types: List = listOf("%"), deviceId: Int, ): ByteArray { return reportsEventsGetBase(from, to, deviceId, types, true) as ByteArray } /** * Fetch a list of Positions within the time period for the Devices or Groups * At least one _deviceId_ or one _groupId_ must be passed * @param from in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param to in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param deviceId (optional) * @param groupId (optional) * @return kotlin.Array */ private suspend fun reportsRouteGetBase( from: String, to: String, deviceId: Int, xlsx: Boolean = false ): Any { val localVariableQuery: MultiValueMap = mapOf( "deviceId" to toMultiValue(listOf(deviceId), "multi"), "from" to listOf(from), "to" to listOf(to) ) val localVariableHeaders = mutableMapOf() if (xlsx) { localVariableHeaders["Accept"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" } val localVariableConfig = RequestConfig( RequestMethod.GET, "/reports/route", query = localVariableQuery, headers = localVariableHeaders ) val response = if (xlsx) { request( localVariableConfig ) } else { request>( localVariableConfig ) } return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data!! 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" ) } } @Suppress("UNCHECKED_CAST") suspend fun reportsRouteGet( from: String, to: String, deviceId: Int, ): Array { return reportsRouteGetBase(from, to, deviceId, false) as Array } @Suppress("UNCHECKED_CAST") suspend fun reportsRouteGetXlsx( from: String, to: String, deviceId: Int, ): ByteArray { return reportsRouteGetBase(from, to, deviceId, true) as ByteArray } /** * Fetch a list of ReportStops within the time period for the Devices or Groups * At least one _deviceId_ or one _groupId_ must be passed * @param from in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param to in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param deviceId (optional) * @param groupId (optional) * @return kotlin.Array */ private suspend fun reportsStopsGetBase( from: String, to: String, deviceId: Int, xlsx: Boolean = false ): Any { val localVariableQuery: MultiValueMap = mapOf( "deviceId" to toMultiValue(listOf(deviceId), "multi"), "from" to listOf(from), "to" to listOf(to) ) val localVariableHeaders = mutableMapOf() if (xlsx) { localVariableHeaders["Accept"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" } val localVariableConfig = RequestConfig( RequestMethod.GET, "/reports/stops", query = localVariableQuery, headers = localVariableHeaders ) val response = if (xlsx) { request( localVariableConfig ) } else { request>( localVariableConfig ) } return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data!! 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" ) } } @Suppress("UNCHECKED_CAST") suspend fun reportsStopsGet( from: String, to: String, deviceId: Int, ): Array { return reportsStopsGetBase(from, to, deviceId, false) as Array } @Suppress("UNCHECKED_CAST") suspend fun reportsStopsGetXlsx( from: String, to: String, deviceId: Int, ): ByteArray { return reportsStopsGetBase(from, to, deviceId, true) as ByteArray } /** * Fetch a list of ReportSummary within the time period for the Devices or Groups * At least one _deviceId_ or one _groupId_ must be passed * @param from in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param to in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param deviceId (optional) * @param groupId (optional) * @return kotlin.Array */ @Suppress("UNCHECKED_CAST") suspend fun reportsSummaryGet( from: java.time.LocalDateTime, to: java.time.LocalDateTime, deviceId: Array? = null, groupId: Array? = null ): Array { val localVariableQuery: MultiValueMap = mapOf( "deviceId" to toMultiValue(deviceId!!.toList(), "multi"), "groupId" to toMultiValue(groupId!!.toList(), "multi"), "from" to listOf("$from"), "to" to listOf("$to") ) val localVariableConfig = RequestConfig( RequestMethod.GET, "/reports/summary", query = localVariableQuery ) val response = request>( localVariableConfig ) return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data as Array 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" ) } } /** * Fetch a list of ReportTrips within the time period for the Devices or Groups * At least one _deviceId_ or one _groupId_ must be passed * @param from in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param to in IS0 8601 format. eg. `1963-11-22T18:30:00Z` * @param deviceId (optional) * @param groupId (optional) * @return kotlin.Array */ @Suppress("UNCHECKED_CAST") suspend fun reportsTripsGet( from: java.time.LocalDateTime, to: java.time.LocalDateTime, deviceId: Array? = null, groupId: Array? = null ): Array { val localVariableQuery: MultiValueMap = mapOf( "deviceId" to toMultiValue(deviceId!!.toList(), "multi"), "groupId" to toMultiValue(groupId!!.toList(), "multi"), "from" to listOf("$from"), "to" to listOf("$to") ) val localVariableConfig = RequestConfig( RequestMethod.GET, "/reports/trips", query = localVariableQuery ) val response = request>( localVariableConfig ) return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data as Array 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" ) } } }