/** * 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 mx.trackermap.TrackerMap.client.models.Command import mx.trackermap.TrackerMap.client.models.CommandType import mx.trackermap.TrackerMap.client.infrastructure.* class CommandsApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) { /** * Fetch a list of Saved Commands * Without params, it returns a list of Saved Commands the user has access to * @param all Can only be used by admins or managers to fetch all entities (optional) * @param userId Standard users can use this only with their own _userId_ (optional) * @param deviceId Standard users can use this only with _deviceId_s, they have access to (optional) * @param groupId Standard users can use this only with _groupId_s, they have access to (optional) * @param refresh (optional) * @return kotlin.Array */ @Suppress("UNCHECKED_CAST") suspend fun commandsGet(all: Boolean? = null, userId: Int? = null, deviceId: Int? = null, groupId: Int? = null, refresh: Boolean? = null): Array { val query: MutableMap> = mutableMapOf() all?.let { query["all"] = listOf("$it") } userId?.let { query["userId"] = listOf("$it") } deviceId?.let { query["deviceId"] = listOf("$it") } groupId?.let { query["groupId"] = listOf("$it") } refresh?.let { query["refresh"] = listOf("$it") } val localVariableQuery: MultiValueMap = query val localVariableConfig = RequestConfig( RequestMethod.GET, "/commands", 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") } } /** * Delete a Saved Command * * @param id * @return void */ suspend fun commandsIdDelete(id: Int) { val localVariableConfig = RequestConfig( RequestMethod.DELETE, "/commands/{id}".replace("{" + "id" + "}", "$id") ) val response = request( localVariableConfig ) return when (response.responseType) { ResponseType.Success -> Unit 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") } } /** * Update a Saved Command * * @param body * @param id * @return Command */ @Suppress("UNCHECKED_CAST") suspend fun commandsIdPut(body: Command, id: Int): Command { val localVariableBody: Any = body val localVariableConfig = RequestConfig( RequestMethod.PUT, "/commands/{id}".replace("{" + "id" + "}", "$id") ) val response = request( localVariableConfig, localVariableBody ) return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data as Command 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") } } /** * Create a Saved Command * * @param body * @return Command */ @Suppress("UNCHECKED_CAST") suspend fun commandsPost(body: Command): Command { val localVariableBody: Any = body val localVariableConfig = RequestConfig( RequestMethod.POST, "/commands" ) val response = request( localVariableConfig, localVariableBody ) return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data as Command 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 Saved Commands supported by Device at the moment * Return a list of saved commands linked to Device and its groups, filtered by current Device protocol support * @param deviceId Standard users can use this only with _deviceId_s, they have access to (optional) * @return kotlin.Array */ @Suppress("UNCHECKED_CAST") suspend fun commandsSendGet(deviceId: Int? = null): Array { val localVariableQuery: MultiValueMap = mapOf("deviceId" to listOf("$deviceId")) val localVariableConfig = RequestConfig( RequestMethod.GET, "/commands/send", 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") } } /** * Dispatch commands to device * Dispatch a new command or Saved Command if _body.id_ set * @param body * @return Command */ @Suppress("UNCHECKED_CAST") suspend fun commandsSendPost(body: Command): Command { val localVariableBody: Any = body val localVariableConfig = RequestConfig( RequestMethod.POST, "/commands/send" ) val response = request( localVariableConfig, localVariableBody ) return when (response.responseType) { ResponseType.Success -> (response as Success<*>).data as Command 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 available Commands for the Device or all possible Commands if Device ommited * * @param deviceId Internal device identifier. Only works if device has already reported some locations (optional) * @param protocol Protocol name. Can be used instead of device id (optional) * @param textChannel When `true` return SMS commands. If not specified or `false` return data commands (optional) * @return kotlin.Array */ @Suppress("UNCHECKED_CAST") suspend fun commandsTypesGet(deviceId: Int? = null, protocol: String? = null, textChannel: Boolean? = null): Array { val localVariableQuery: MultiValueMap = mapOf("deviceId" to listOf("$deviceId"), "protocol" to listOf("$protocol"), "textChannel" to listOf("$textChannel")) val localVariableConfig = RequestConfig( RequestMethod.GET, "/commands/types", 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") } } }