Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

keep the original key name #7

Merged
merged 1 commit into from
Nov 18, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 51 additions & 51 deletions kheos-common/src/main/kotlin/io/honnix/kheos/common/Model.kt
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,11 @@ data class Option(val id: Int, val name: String) {
}
}

data class Status(@JsonDeserialize(converter = Str2GroupedCommandConverter::class)
val command: GroupedCommand,
val result: Result,
@JsonDeserialize(converter = Str2MessageConverter::class)
val message: Message)
data class Heos(@JsonDeserialize(converter = Str2GroupedCommandConverter::class)
val command: GroupedCommand,
val result: Result,
@JsonDeserialize(converter = Str2MessageConverter::class)
val message: Message)

data class Player(val name: String, val pid: String,
val model: String, val version: String, val ip: String,
Expand Down Expand Up @@ -457,116 +457,116 @@ data class Image(@JsonDeserialize(converter = Str2URLConverter::class)
data class Metadata(val albumId: String, val images: List<Image>)

interface GenericResponse {
val status: Status
val heos: Heos
}

data class HeartbeatResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class HeartbeatResponse(override val heos: Heos) : GenericResponse

data class CheckAccountResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class CheckAccountResponse(override val heos: Heos) : GenericResponse

data class SignInResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SignInResponse(override val heos: Heos) : GenericResponse

data class SignOutResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SignOutResponse(override val heos: Heos) : GenericResponse

data class RebootResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class RebootResponse(override val heos: Heos) : GenericResponse

data class GetPlayersResponse(@JsonProperty("heos") override val status: Status,
data class GetPlayersResponse(override val heos: Heos,
val payload: List<Player>) : GenericResponse

data class GetPlayerInfoResponse(@JsonProperty("heos") override val status: Status,
data class GetPlayerInfoResponse(override val heos: Heos,
val payload: Player) : GenericResponse

data class GetPlayStateResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class GetPlayStateResponse(override val heos: Heos) : GenericResponse

data class SetPlayStateResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SetPlayStateResponse(override val heos: Heos) : GenericResponse

data class GetNowPlayingMediaResponse(@JsonProperty("heos") override val status: Status,
data class GetNowPlayingMediaResponse(override val heos: Heos,
val payload: NowPlayingMedia,
val options: Options = emptyList()) : GenericResponse

data class GetVolumeResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class GetVolumeResponse(override val heos: Heos) : GenericResponse

data class SetVolumeResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SetVolumeResponse(override val heos: Heos) : GenericResponse

data class VolumeUpResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class VolumeUpResponse(override val heos: Heos) : GenericResponse

data class VolumeDownResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class VolumeDownResponse(override val heos: Heos) : GenericResponse

data class GetMuteResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class GetMuteResponse(override val heos: Heos) : GenericResponse

data class SetMuteResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SetMuteResponse(override val heos: Heos) : GenericResponse

data class ToggleMuteResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class ToggleMuteResponse(override val heos: Heos) : GenericResponse

data class GetPlayModeResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class GetPlayModeResponse(override val heos: Heos) : GenericResponse

data class SetPlayModeResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SetPlayModeResponse(override val heos: Heos) : GenericResponse

data class GetQueueResponse(@JsonProperty("heos") override val status: Status,
data class GetQueueResponse(override val heos: Heos,
val payload: List<QueueItem>) : GenericResponse

data class PlayQueueResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class PlayQueueResponse(override val heos: Heos) : GenericResponse

data class RemoveFromQueueResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class RemoveFromQueueResponse(override val heos: Heos) : GenericResponse

data class SaveQueueResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SaveQueueResponse(override val heos: Heos) : GenericResponse

data class ClearQueueResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class ClearQueueResponse(override val heos: Heos) : GenericResponse

data class PlayNextResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class PlayNextResponse(override val heos: Heos) : GenericResponse

data class PlayPreviousResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class PlayPreviousResponse(override val heos: Heos) : GenericResponse

data class GetGroupsResponse(@JsonProperty("heos") override val status: Status,
data class GetGroupsResponse(override val heos: Heos,
val payload: List<Group>) : GenericResponse

data class GetGroupInfoResponse(@JsonProperty("heos") override val status: Status,
data class GetGroupInfoResponse(override val heos: Heos,
val payload: Group) : GenericResponse

data class SetGroupResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SetGroupResponse(override val heos: Heos) : GenericResponse

data class GetMusicSourcesResponse(@JsonProperty("heos") override val status: Status,
data class GetMusicSourcesResponse(override val heos: Heos,
val payload: List<MusicSource>) : GenericResponse

data class GetMusicSourceInfoResponse(@JsonProperty("heos") override val status: Status,
data class GetMusicSourceInfoResponse(override val heos: Heos,
val payload: MusicSource) : GenericResponse

data class BrowseMediaSourcesResponse(@JsonProperty("heos") override val status: Status,
data class BrowseMediaSourcesResponse(override val heos: Heos,
val payload: List<MusicSource>,
val options: Options = emptyList()) : GenericResponse

data class BrowseTopMusicResponse(@JsonProperty("heos") override val status: Status,
data class BrowseTopMusicResponse(override val heos: Heos,
val payload: List<Media>) : GenericResponse

data class BrowseSourceContainersResponse(@JsonProperty("heos") override val status: Status,
data class BrowseSourceContainersResponse(override val heos: Heos,
val payload: List<Media>,
val options: Options = emptyList()) : GenericResponse

data class GetSearchCriteriaResponse(@JsonProperty("heos") override val status: Status,
data class GetSearchCriteriaResponse(override val heos: Heos,
val payload: List<SearchCriteria>) : GenericResponse

data class SearchResponse(@JsonProperty("heos") override val status: Status,
data class SearchResponse(override val heos: Heos,
val payload: List<Media>) : GenericResponse

data class PlayStreamResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class PlayStreamResponse(override val heos: Heos) : GenericResponse

data class PlayInputResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class PlayInputResponse(override val heos: Heos) : GenericResponse

data class AddToQueueResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class AddToQueueResponse(override val heos: Heos) : GenericResponse

data class RenamePlaylistResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class RenamePlaylistResponse(override val heos: Heos) : GenericResponse

data class DeletePlaylistResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class DeletePlaylistResponse(override val heos: Heos) : GenericResponse

data class RetrieveMetadataResponse(@JsonProperty("heos") override val status: Status,
data class RetrieveMetadataResponse(override val heos: Heos,
val payload: List<Metadata>) : GenericResponse

data class GetServiceOptionsResponse(@JsonProperty("heos") override val status: Status,
data class GetServiceOptionsResponse(override val heos: Heos,
val payload: Options) : GenericResponse

data class SetServiceOptionResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class SetServiceOptionResponse(override val heos: Heos) : GenericResponse

data class RegisterForChangeEventsResponse(@JsonProperty("heos") override val status: Status) : GenericResponse
data class RegisterForChangeEventsResponse(override val heos: Heos) : GenericResponse

enum class ChangeEventCommand(private val command: String) {
PLAYER_NOW_PLAYING_PROGRESS("player_now_playing_progress"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class JSONTest : StringSpec({

"should serialize and deserialize" {
val origin = CheckAccountResponse(
Status(GroupedCommand(CommandGroup.SYSTEM, Command.CHECK_ACCOUNT),
Heos(GroupedCommand(CommandGroup.SYSTEM, Command.CHECK_ACCOUNT),
Result.SUCCESS, Message()))
JSON.deserialize<CheckAccountResponse>(JSON.serialize(origin)) shouldBe origin
}
Expand Down
8 changes: 4 additions & 4 deletions kheos-lib/src/main/kotlin/io/honnix/kheos/lib/HeosClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,8 @@ internal class HeosClientImpl(host: String,

val response = JSON.mapper.readValue(rawResponse, T::class.java)

if (response.status.result === Result.FAIL) {
throw HeosCommandException.build(response.status.message)
if (response.heos.result === Result.FAIL) {
throw HeosCommandException.build(response.heos.message)
}

return response
Expand Down Expand Up @@ -621,8 +621,8 @@ internal class HeosChangeEventsClientImpl(host: String,

val response = JSON.mapper.readValue(rawResponse, RegisterForChangeEventsResponse::class.java)

if (response.status.result === Result.FAIL) {
throw HeosCommandException.build(response.status.message)
if (response.heos.result === Result.FAIL) {
throw HeosCommandException.build(response.heos.message)
}
}

Expand Down
Loading