diff --git a/www/src/data/remote.js b/www/src/data/remote.js index 1bf8ed0..8782ecc 100644 --- a/www/src/data/remote.js +++ b/www/src/data/remote.js @@ -1,4 +1,4 @@ -function Remote({ id, title, commands } = {}) { +function Remote({ id, title, commands = [] } = {}) { let _id = id; let _title = title; let _commands = commands; diff --git a/www/src/data/serializer.js b/www/src/data/serializer.js index 5bd8239..58a5899 100644 --- a/www/src/data/serializer.js +++ b/www/src/data/serializer.js @@ -68,7 +68,11 @@ const Serializer = (function () { } function deserializeRemote(object) { - return new Remote(object); + return new Remote({ + id: object.id, + title: object.title, + commands: deserializeCommands(object.commands), + }); } function deserializeRemotes(objects) { diff --git a/www/src/services/remotes-service.js b/www/src/services/remotes-service.js index dfa620e..6d31651 100644 --- a/www/src/services/remotes-service.js +++ b/www/src/services/remotes-service.js @@ -3,7 +3,20 @@ import Serializer from "../data/serializer"; import Net from "../tools/net"; function RemoteService() { - let remotes = []; + async function getRemote(remoteId) { + let response = await Net.sendRequest({ + method: "GET", + url: "/api/remotes/" + remoteId, + }); + + if (response.status !== 200) { + let responseData = JSON.parse(response.data); + throw new Error(responseData.error); + } + + let remoteObject = JSON.parse(response.data); + return Serializer.deserializeRemote(remoteObject); + } async function getRemotes() { let response = await Net.sendRequest({ @@ -92,6 +105,7 @@ function RemoteService() { } return { + getRemote, getRemotes, createRemote, deleteRemote,