aboutsummaryrefslogtreecommitdiff
path: root/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/controllers/DeviceController.kt
blob: 2e0d9246d272fd3a18e6837e7886e75a9e228b5b (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
package mx.trackermap.TrackerMap.controllers

import mx.trackermap.TrackerMap.client.apis.DevicesApi
import mx.trackermap.TrackerMap.client.models.Device

class DeviceController(
    private val devicesApi: DevicesApi,
    private val sessionController: SessionController)
{
    var devices = emptyArray<Device>()

    suspend fun getDevices() {
        devices = devicesApi.devicesGet(userId = sessionController.user?.id)
    }

    fun getDevice(id: Int) = devices.find { it.id == id }

    suspend fun createDevice(device: Device) {
        devices += devicesApi.devicesPost(device)
    }

    suspend fun updateDevice(id: Int, device: Device) {
        devices = devices.map {
            if (it.id == id)
                devicesApi.devicesIdPut(id = id, body = device)
            else it
        }.toTypedArray()
    }

    suspend fun deleteDevice(id: Int) {
        devicesApi.devicesIdDelete(id)
        devices = devices.filter { it.id != id }.toTypedArray()
    }
}