Skip to content

Commit

Permalink
Merge pull request #118 from ReneeVandervelde/scene-delete
Browse files Browse the repository at this point in the history
Add delete-scene command/api
  • Loading branch information
ReneeVandervelde committed May 21, 2023
2 parents e224f18 + ee02493 commit a051922
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 8 deletions.
6 changes: 2 additions & 4 deletions cli/src/main/kotlin/inkapplications/shade/cli/Main.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@ import inkapplications.shade.cli.lights.ListLightsCommand
import inkapplications.shade.cli.lights.UpdateLightCommand
import inkapplications.shade.cli.resources.ListResourcesCommand
import inkapplications.shade.cli.rooms.*
import inkapplications.shade.cli.scenes.CreateSceneCommand
import inkapplications.shade.cli.scenes.GetSceneCommand
import inkapplications.shade.cli.scenes.ListScenesCommand
import inkapplications.shade.cli.scenes.UpdateSceneCommand
import inkapplications.shade.cli.scenes.*
import inkapplications.shade.cli.zones.*
import kotlin.system.exitProcess

Expand All @@ -30,6 +27,7 @@ class Main: NoOpCliktCommand() {
CreateZoneCommand,
DeleteDeviceCommand,
DeleteRoomCommand,
DeleteSceneCommand,
DeleteZoneCommand,
DiscoverCommand,
EventsCommand,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package inkapplications.shade.cli.scenes

import com.github.ajalt.clikt.parameters.arguments.argument
import inkapplications.shade.cli.AuthorizedShadeCommand
import inkapplications.shade.cli.resourceId

object DeleteSceneCommand: AuthorizedShadeCommand(
help = "Delete a scene from the hue bridge"
) {
private val sceneId by argument().resourceId()

override suspend fun runCommand(): Int {
val response = shade.scenes.deleteScene(sceneId)

logger.debug("Got response: $response")

echo(response)

return 0
}
}
1 change: 1 addition & 0 deletions scenes/api/scenes.api
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
public abstract interface class inkapplications/shade/scenes/SceneControls {
public abstract fun createScene (Linkapplications/shade/scenes/parameters/SceneCreateParameters;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun deleteScene-klA6Vuc (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun getScene-klA6Vuc (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun listScenes (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun updateScene-bKh5c1I (Ljava/lang/String;Linkapplications/shade/scenes/parameters/SceneUpdateParameters;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,12 @@ interface SceneControls {
* @return A reference to the updated scene.
*/
suspend fun updateScene(id: ResourceId, parameters: SceneUpdateParameters): ResourceReference

/**
* Delete a scene from the Hue Bridge.
*
* @param id The v2 resource ID of the Scene to delete.
* @return A reference to the deleted scene.
*/
suspend fun deleteScene(id: ResourceId): ResourceReference
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package inkapplications.shade.scenes

import inkapplications.shade.internals.HueHttpClient
import inkapplications.shade.internals.getData
import inkapplications.shade.internals.postData
import inkapplications.shade.internals.putData
import inkapplications.shade.internals.*
import inkapplications.shade.scenes.parameters.SceneCreateParameters
import inkapplications.shade.scenes.parameters.SceneUpdateParameters
import inkapplications.shade.scenes.structures.Scene
Expand Down Expand Up @@ -38,4 +35,10 @@ internal class ShadeScenes(

return response.single()
}

override suspend fun deleteScene(id: ResourceId): ResourceReference {
val response = hueClient.deleteData<List<ResourceReference>>("resource", "scene", id.value)

return response.single()
}
}

0 comments on commit a051922

Please sign in to comment.