aboutsummaryrefslogtreecommitdiff
path: root/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/apis/NotificationsApi.kt
blob: 1f0d744d5bd16879e9a92b3a24c5393f4127f332 (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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
/**
 * 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.Notification
import mx.trackermap.TrackerMap.client.models.NotificationType

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

class NotificationsApi : ApiClient() {

    /**
     * Fetch a list of Notifications
     * Without params, it returns a list of Notifications 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<Notification>
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun notificationsGet(all: Boolean? = null, userId: Int? = null, deviceId: Int? = null, groupId: Int? = null, refresh: Boolean? = null): Array<Notification> {
        val localVariableQuery: MultiValueMap = mapOf("all" to listOf("$all"), "userId" to listOf("$userId"), "deviceId" to listOf("$deviceId"), "groupId" to listOf("$groupId"), "refresh" to listOf("$refresh"))
        val localVariableConfig = RequestConfig(
                RequestMethod.GET,
                "/notifications", query = localVariableQuery
        )
        val response = request<Array<Notification>>(
                localVariableConfig
        )

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as Array<Notification>
            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 Notification
     * 
     * @param id  
     * @return void
     */
    suspend fun notificationsIdDelete(id: Int) {
        
        val localVariableConfig = RequestConfig(
                RequestMethod.DELETE,
                "/notifications/{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 Notification
     * 
     * @param body  
     * @param id  
     * @return Notification
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun notificationsIdPut(body: Notification, id: Int): Notification {
        val localVariableBody: Any = body
        
        val localVariableConfig = RequestConfig(
                RequestMethod.PUT,
                "/notifications/{id}".replace("{" + "id" + "}", "$id")
        )
        val response = request<Notification>(
                localVariableConfig, localVariableBody
        )

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

        return when (response.responseType) {
            ResponseType.Success -> (response as Success<*>).data as Notification
            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")
        }
    }
    /**
     * Send test notification to current user via Email and SMS
     * 
     * @return void
     */
    suspend fun notificationsTestPost(){
        
        val localVariableConfig = RequestConfig(
                RequestMethod.POST,
                "/notifications/test"
        )
        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")
        }
    }
    /**
     * Fetch a list of available Notification types
     * 
     * @return kotlin.Array<NotificationType>
     */
    @Suppress("UNCHECKED_CAST")
    suspend fun notificationsTypesGet(): Array<NotificationType> {
        
        val localVariableConfig = RequestConfig(
                RequestMethod.GET,
                "/notifications/types"
        )
        val response = request<Array<NotificationType>>(
                localVariableConfig
        )

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