aboutsummaryrefslogtreecommitdiff
path: root/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/DevicesApi.kt
blob: 74d105f4cc11e3c9a8537fd01275a479426d98a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/**
 * 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.Device
import mx.trackermap.TrackerMap.client.models.DeviceAccumulators

import mx.trackermap.TrackerMap.client.infrastructure.*

class DevicesApi(defaultBaseUrl: String) : ApiClient(defaultBaseUrl) {

    /**
     * Fetch a list of Devices
     * Without any params, returns a list of the user's devices
     * @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 id To fetch one or more devices. Multiple params can be passed like `id=31&id=42` (optional)
     * @param uniqueId To fetch one or more devices. Multiple params can be passed like `uniqueId=333331&uniqieId=44442` (optional)
     * @return kotlin.Array<Device>
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun devicesGet(all: Boolean? = null, userId: Int? = null, id: Int? = null, uniqueId: String? = null): Array<Device> {
        val query: MutableMap<String, List<String>> = mutableMapOf()
        all?.let { query["all"] = listOf("$it") }
        userId?.let { query["userId"] = listOf("$it") }
        id?.let { query["id"] = listOf("$it") }
        uniqueId?.let { query["uniqueId"] = listOf(it) }
        val localVariableQuery: MultiValueMap = query

        val localVariableConfig = RequestConfig(
                RequestMethod.GET,
                "/devices", query = localVariableQuery
        )
        val response = request<Array<Device>>(
                localVariableConfig
        )

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as Array<Device>
            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 total distance and hours of the Device
     * 
     * @param body  
     * @param id  
     * @return void
     */
    suspend fun devicesIdAccumulatorsPut(body: DeviceAccumulators, id: Int) {
        val localVariableBody: Any = body
        
        val localVariableConfig = RequestConfig(
                RequestMethod.PUT,
                "/devices/{id}/accumulators".replace("{" + "id" + "}", "$id")
        )
        val response = request<Any?>(
                localVariableConfig, localVariableBody
        )

        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")
        }
    }
    /**
     * Delete a Device
     * 
     * @param id  
     * @return void
     */
    suspend fun devicesIdDelete(id: Int) {
        
        val localVariableConfig = RequestConfig(
                RequestMethod.DELETE,
                "/devices/{id}".replace("{" + "id" + "}", "$id")
        )
        val response = request<Any?>(
                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 Device
     * 
     * @param body  
     * @param id  
     * @return Device
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun devicesIdPut(body: Device, id: Int): Device {
        val localVariableBody: Any = body
        
        val localVariableConfig = RequestConfig(
                RequestMethod.PUT,
                "/devices/{id}".replace("{" + "id" + "}", "$id")
        )
        val response = request<Device>(
                localVariableConfig, localVariableBody
        )

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as Device
            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 Device
     * 
     * @param body  
     * @return Device
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun devicesPost(body: Device): Device {
        val localVariableBody: Any = body
        
        val localVariableConfig = RequestConfig(
                RequestMethod.POST,
                "/devices"
        )
        val response = request<Device>(
                localVariableConfig, localVariableBody
        )

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