164 lines
4.0 KiB
JavaScript
164 lines
4.0 KiB
JavaScript
import Serializer from "../data/serializer";
|
|
import Net from "../tools/net";
|
|
import WebRTCService from "./webrtc-service";
|
|
|
|
const MESSAGE_TYPE_COMMAND = "command";
|
|
|
|
function RemoteService() {
|
|
async function getRemote(remoteId) {
|
|
if (!remoteId) return null;
|
|
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({
|
|
method: "GET",
|
|
url: "/api/remotes",
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
|
|
let remoteObjects = JSON.parse(response.data);
|
|
return Serializer.deserializeRemotes(remoteObjects);
|
|
}
|
|
|
|
async function createRemote(remote) {
|
|
let remoteObject = Serializer.serializeRemote(remote);
|
|
let response = await Net.sendJsonRequest({
|
|
method: "POST",
|
|
url: "/api/remotes",
|
|
data: remoteObject,
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
}
|
|
|
|
async function updateRemote(remote) {
|
|
let remoteObject = Serializer.serializeRemote(remote);
|
|
let response = await Net.sendJsonRequest({
|
|
method: "PUT",
|
|
url: "/api/remotes/" + remote.getId(),
|
|
data: remoteObject,
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
}
|
|
|
|
async function deleteRemote(remoteId) {
|
|
let response = await Net.sendRequest({
|
|
method: "DELETE",
|
|
url: "/api/remotes/" + remoteId,
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
}
|
|
|
|
async function getCommands() {
|
|
let response = await Net.sendRequest({
|
|
method: "GET",
|
|
url: "/api/commands",
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
|
|
let commandObjects = JSON.parse(response.data);
|
|
return Serializer.deserializeCommands(commandObjects);
|
|
}
|
|
|
|
async function createCommand(command) {
|
|
return createCommands([command]);
|
|
}
|
|
|
|
async function createCommands(commands) {
|
|
let commandObjects = Serializer.serializeCommands(commands);
|
|
let response = await Net.sendJsonRequest({
|
|
method: "POST",
|
|
url: "/api/commands",
|
|
data: commandObjects,
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
}
|
|
|
|
async function updateCommand(command) {
|
|
let commandObject = Serializer.serializeCommand(command);
|
|
let response = await Net.sendJsonRequest({
|
|
method: "PUT",
|
|
url: "/api/commands/" + command.getId(),
|
|
data: commandObject,
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
}
|
|
|
|
async function deleteCommand(commandId) {
|
|
let response = await Net.sendRequest({
|
|
method: "DELETE",
|
|
url: "/api/commands/" + commandId,
|
|
});
|
|
|
|
if (response.status !== 200) {
|
|
let responseData = JSON.parse(response.data);
|
|
throw new Error(responseData.error);
|
|
}
|
|
}
|
|
|
|
function sendCommand(command) {
|
|
let commandObject = Serializer.serializeCommand(command);
|
|
WebRTCService.sendDataJson({
|
|
type: MESSAGE_TYPE_COMMAND,
|
|
data: commandObject,
|
|
});
|
|
}
|
|
|
|
return {
|
|
getRemote,
|
|
getRemotes,
|
|
createRemote,
|
|
updateRemote,
|
|
deleteRemote,
|
|
getCommands,
|
|
createCommand,
|
|
createCommands,
|
|
updateCommand,
|
|
deleteCommand,
|
|
sendCommand,
|
|
};
|
|
}
|
|
|
|
RemoteService = new RemoteService();
|
|
|
|
export default RemoteService;
|