aboutsummaryrefslogtreecommitdiff
path: root/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/GeofencesApi.kt
blob: dd9c89d5f748dd23fb8a9a1bc75b0ab339fd881e (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
/**
 * 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.Geofence

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

class GeofencesApi(basePath: String = "https://demo.traccar.org/api") : ApiClient(basePath) {

    /**
     * Fetch a list of Geofences
     * Without params, it returns a list of Geofences 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<Geofence>
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun geofencesGet(all: Boolean? = null, userId: Int? = null, deviceId: Int? = null, groupId: Int? = null, refresh: Boolean? = null): Array<Geofence> {
        val query: MutableMap<String, List<String>> = mutableMapOf()
        all?.let { query["all"] = listOf("$it") }
        userId?.let { query["userId"] = listOf("$it") }
        deviceId?.let { query["userId"] = listOf("$it") }
        groupId?.let { query["groupId"] = listOf("$it") }
        refresh?.let { query["refresh"] = listOf("$it") }
        val localVariableQuery: MultiValueMap = query

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

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as Array<Geofence>
            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 Geofence
     *
     * @param id
     * @return void
     */
    suspend fun geofencesIdDelete(id: Int) {

        val localVariableConfig = RequestConfig(
                RequestMethod.DELETE,
                "/geofences/{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 Geofence
     *
     * @param body
     * @param id
     * @return Geofence
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun geofencesIdPut(body: Geofence, id: Int): Geofence {
        val localVariableBody: Any = body

        val localVariableConfig = RequestConfig(
                RequestMethod.PUT,
                "/geofences/{id}".replace("{" + "id" + "}", "$id")
        )
        val response = request<Geofence>(
                localVariableConfig, localVariableBody
        )

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as Geofence
            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 Geofence
     *
     * @param body
     * @return Geofence
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun geofencesPost(body: Geofence): Geofence {
        val localVariableBody: Any = body

        val localVariableConfig = RequestConfig(
                RequestMethod.POST,
                "/geofences"
        )
        val response = request<Geofence>(
                localVariableConfig, localVariableBody
        )

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