885 lines
40 KiB
JavaScript
Executable File
885 lines
40 KiB
JavaScript
Executable File
/**
|
|
* Copyright (c) 2020
|
|
*
|
|
* CENTIRM HotelTV HCAP module javascript.
|
|
*
|
|
* @summary short description for the file
|
|
* @author Joel <joel.kim@centirm.com>
|
|
*
|
|
* Created at : 2020-11-26 02:21:56
|
|
* Last modified : 2020-11-26 15:31:40
|
|
*/
|
|
|
|
HotelTV.namespace('HotelTV.api');
|
|
HotelTV.api = (function() {
|
|
//// 의존 관계 선언
|
|
let _api_ver = Object.prototype.toString,
|
|
_svr_ip = Object.prototype.toString,
|
|
_serial_num = Object.prototype.toString,
|
|
_dev_familly = Object.prototype.toString,
|
|
_license = Object.prototype.toString,
|
|
_token = "aLc*eBgTijklRnopq4s",
|
|
_registered = false,
|
|
_exist = false,
|
|
_svr_port = 0,
|
|
_1stBoot = false;
|
|
|
|
//// 비공개 프로퍼티
|
|
|
|
/// 초기화 루틴
|
|
|
|
//// 비공개 매써드
|
|
/**
|
|
*
|
|
*/
|
|
function __apifxn_init(param) {
|
|
_api_ver = param.api_ver;
|
|
_serial_num = param.serial_num;
|
|
_svr_ip = param.svr_ip;
|
|
_svr_port = param.svr_port;
|
|
_dev_familly = param.dev_familly;
|
|
_license = param.license;
|
|
_token = param.apikey;
|
|
_registered = param.registered;
|
|
_exist = param.exist;
|
|
_1stBoot = param.firstBoot;
|
|
}
|
|
|
|
|
|
/**
|
|
* API Wrapper Function::> Get API base URI
|
|
*/
|
|
function __apifxn_get_base_url() {
|
|
var sz_base_url = "http://" + _svr_ip + ":" + _svr_port;
|
|
return sz_base_url;
|
|
}
|
|
|
|
/**
|
|
* API Wrapper Function::> Get Device License
|
|
*/
|
|
function __apifxn_get_license() {
|
|
return _license;
|
|
}
|
|
|
|
|
|
/**
|
|
* API Wrapper Function::> Get Device Registered
|
|
*/
|
|
function __apifxn_get_registered() {
|
|
return { 'registered': _registered, 'exist': _exist, 'license': _license };
|
|
}
|
|
|
|
/**
|
|
* API Wrapper Function::> Get API Token
|
|
*/
|
|
function __apifxn_get_token() {
|
|
return _token;
|
|
}
|
|
|
|
|
|
/**
|
|
* API Wrapper Function::> Get ProCentric Server Info(Realted HCAP API:hcap.system.getProcentricServer)
|
|
*/
|
|
function __apifxn_get_api_url(api_type) {
|
|
var dic_api_url = {
|
|
/* Setting & Contents */
|
|
"get_translation": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/translation",
|
|
"get_device_settings": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/setting",
|
|
"get_site_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/info",
|
|
"get_guest_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/guest",
|
|
"get_opening_ctz": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/opening",
|
|
"get_widget_ctz": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/widget",
|
|
"get_program_ctz": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/program",
|
|
"get_epg_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/epg",
|
|
"get_weather": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/weather",
|
|
"get_flight": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/flight",
|
|
"get_services": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/services",
|
|
"get_news": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/news",
|
|
"get_message": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/messages",
|
|
/* Amenity&Room Service: get/request/sotck */
|
|
"get_ctz_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amentity",
|
|
"get_stock_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/stock",
|
|
"get_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
|
|
"put_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
|
|
"update_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
|
|
"delete_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
|
|
"get_order_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/orders",
|
|
"put_order_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/orders",
|
|
|
|
"get_ctz_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService",
|
|
"get_stock_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/stock",
|
|
"get_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts",
|
|
"put_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts",
|
|
"update_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts",
|
|
"delete_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts",
|
|
"get_order_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/orders",
|
|
"put_order_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/orders",
|
|
/* Events */
|
|
"update_event": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/event",
|
|
/* Status */
|
|
"set_device_status": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/state",
|
|
/*
|
|
"get_emergency": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/emergency",
|
|
"set_message_status": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/messages",
|
|
"set_device_opmode": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/bbdoors/opmode",
|
|
*/
|
|
}
|
|
|
|
if (api_type in dic_api_url) {
|
|
return dic_api_url[api_type];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
function __apifxn_CallCmsApi(_method, sz_url, api_type, dic_param) {
|
|
return new Promise((resolve, reject) => {
|
|
let isPostMsg = false;
|
|
let xhr = new XMLHttpRequest();
|
|
// let formData = new FormData();
|
|
let _ret = { type: api_type, error: true, reason: null, data: null };
|
|
|
|
//xhr.timeout = 500;
|
|
if (dic_param !== null) {
|
|
isPostMsg = true;
|
|
// for (_key in dic_param) {
|
|
// formData.append(_key.toString(), dic_param[_key]);
|
|
// }
|
|
}
|
|
|
|
xhr.onload = function() {
|
|
if (xhr.status === 200 || xhr.status === 201 || xhr.status === 204) {
|
|
_ret.error = false;
|
|
_ret.data = xhr.response;
|
|
resolve(_ret);
|
|
} else {
|
|
reject(_ret);
|
|
}
|
|
};
|
|
|
|
xhr.ontimeout = function(e) {
|
|
// XMLHttpRequest timed out. Do something here.
|
|
_ret.reason = "TIMEOUT";
|
|
reject(_ret);
|
|
};
|
|
|
|
xhr.onerror = function() {
|
|
_ret.reason = "FATAL";
|
|
reject(_ret);
|
|
}
|
|
|
|
switch (_method) {
|
|
case "GET":
|
|
xhr.open('GET', sz_url, true);
|
|
xhr.setRequestHeader("Accept", "application/json");
|
|
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
xhr.setRequestHeader("Authorization", "Bearer " + __apifxn_get_token());
|
|
xhr.send(null);
|
|
break;
|
|
case "POST":
|
|
xhr.open('POST', sz_url);
|
|
xhr.setRequestHeader("Accept", "application/json");
|
|
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
xhr.setRequestHeader("Authorization", "Bearer " + __apifxn_get_token());
|
|
xhr.send(JSON.stringify(dic_param)); // 폼 데이터 객체 전송
|
|
break;
|
|
case "PATCH":
|
|
xhr.open('PATCH', sz_url);
|
|
xhr.setRequestHeader("Accept", "application/json");
|
|
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
xhr.setRequestHeader("Authorization", "Bearer " + __apifxn_get_token());
|
|
xhr.send(JSON.stringify(dic_param)); // 폼 데이터 객체 전송
|
|
break;
|
|
case "DELETE":
|
|
xhr.open('DELETE', sz_url, true);
|
|
xhr.setRequestHeader("Accept", "application/json");
|
|
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
xhr.setRequestHeader("Authorization", "Bearer " + __apifxn_get_token());
|
|
xhr.send(null);
|
|
break;
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
|
|
//// 공개 API
|
|
return {
|
|
Init: function(ip, port, model, serial) {
|
|
return new Promise((resolve, reject) => {
|
|
if (HotelTV.state.token) {
|
|
let _token = HotelTV.state.token;
|
|
__apifxn_init({ 'dev_familly': model, 'serial_num': serial, 'svr_ip': ip, 'svr_port': port, 'api_ver': _token.version, "license": _token.license, "apikey": _token.apikey, "registered": _token.registered, "exist": _token.exist, "firstBoot": false });
|
|
resolve(0);
|
|
} else {
|
|
// licenses api format
|
|
// <svr ip:svr port>/api/licenses/us761h0n/103INLV4B896
|
|
var sz_api_url = "http://" + ip + ":" + port + "/api/licenses" + "/" + model + "/" + serial;
|
|
console.log("Debug: request token url:" + sz_api_url);
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetToken", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
HotelTV.state.token = JSON.parse(_result.data);
|
|
__apifxn_init({ 'dev_familly': model, 'serial_num': serial, 'svr_ip': ip, 'svr_port': port, 'api_ver': HotelTV.state.token.version, "license": HotelTV.state.token.license, "apikey": HotelTV.state.token.apikey, "registered": HotelTV.state.token.registered, "exist": HotelTV.state.token.exist, "firstBoot": HotelTV.state.token.firstBoot });
|
|
resolve(0);
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
GetBaseUrl: function() {
|
|
return __apifxn_get_base_url();
|
|
},
|
|
|
|
CheckRegistration: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_registered();
|
|
resolve(sz_api_url);
|
|
});
|
|
},
|
|
|
|
DownloadData: function(dl_url) {
|
|
return new Promise((resolve, reject) => {
|
|
__apifxn_CallCmsApi("GET", dl_url, "DownloadData", null).then(_result => {
|
|
resolve(_result.data);
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetTranslation: function(group, locale) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_translation");
|
|
//let sz_api_param = null;
|
|
if (group) {
|
|
sz_api_url += `/&group=${group};`;
|
|
}
|
|
if (locale) {
|
|
sz_api_url += `/&locales=${locale};`;
|
|
}
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetTranslation", null).then(_result => {
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetServiceInfo: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_services");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetServiceInfo", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetSettings: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_device_settings");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetDeviceSettings", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetHotelInfo: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_site_info");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetHotelInfo", null).then(_result => {
|
|
///console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetGuestInfo: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_guest_info");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetGuestInfo", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetOpeningCtz: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_opening_ctz");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetOpeningCtz", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetAmenityCtz: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_ctz_amenity");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetAmenityCtz", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetRoomServiceCtz: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_ctz_roomservice");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetRoomServiceCtz", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetWeather: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_weather");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetWeather", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetFlight: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_flight");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetFlight", null).then(_result => {
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetWidgetCtz: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_widget_ctz");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetWidgetCtz", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetProgramCtz: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_program_ctz");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetProgramCtz", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetEpg: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_epg_info");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetEpg", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetNews: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_news");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetNews", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
GetMessage: function() {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_message");
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetMessage", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
SetMessageStatus: function(msgID) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_message") + "/" + msgID;
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "SetMessageStatus", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
let _rspJson = JSON.parse(_result.data);
|
|
if (_rspJson.status == 'ok') {
|
|
resolve(_rspJson.data);
|
|
} else {
|
|
resolve(null);
|
|
}
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> get amenity stock info
|
|
* @param {string} _item_id
|
|
* @param {number} _quantity
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
GetAmenityStocks: function(_item_id, _quantity) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_stock_amenity")+ "/" + _item_id + "?quantity=" + _quantity;
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetAmenityStocks", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> get amenity carts info
|
|
* @param {string} _item_id
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
GetAmenityCarts: function(_item_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_carts_amenity");
|
|
__apifxn_CallCmsApi((_item_id) ? "POST" : "GET", sz_api_url, "GetAmenityCarts", _item_id).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> put amenity carts info
|
|
* @param {string} _item_id
|
|
* @param {number} _quantity
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
PutAmenityCarts: function(_item_id, _quantity) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("put_carts_amenity");
|
|
__apifxn_CallCmsApi("POST", sz_api_url, "PutAmenityCarts", { "itemId": _item_id, "quantity": _quantity }).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> update amenity carts info
|
|
* @param {string} _cart_id
|
|
* @param {number} _quantity
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
UpdateAmenityCarts: function(_cart_id, _quantity) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("update_carts_amenity");
|
|
__apifxn_CallCmsApi("PATCH", `${sz_api_url}/${_cart_id}`, "UpdateAmenityCarts", { "quantity": _quantity }).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> delete amenity carts info
|
|
* @param {string} _cart_id
|
|
* @returns
|
|
* null: 성공하면 리턴값 없음.
|
|
* {dictionary}
|
|
*/
|
|
DeleteAmenityCarts: function(_cart_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("delete_carts_amenity");
|
|
__apifxn_CallCmsApi("DELETE",_cart_id==null ? `${sz_api_url}` : `${sz_api_url}/${_cart_id}`, "DeleteAmenityCarts", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve();
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> get amenity order info
|
|
* @param {string} _cart_id
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
GetAmenityOrders: function(_item_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_order_amenity");
|
|
__apifxn_CallCmsApi((_item_id) ? "POST" : "GET", sz_api_url, "GetAmenityOrders", _item_id).then(_result => {
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> order amenity
|
|
* @param {string} _cart_id
|
|
* @returns
|
|
* null: if _cart_id isn't null it will return specified info with _cart_id
|
|
* {dictionary}
|
|
*/
|
|
PutAmenityOrders: function(_cart_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("put_order_amenity");
|
|
__apifxn_CallCmsApi("POST", `${sz_api_url}`, "PutAmenityOrders", _cart_id).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> get roomservice stock info
|
|
* @param {string} _item_id
|
|
* @param {number} _quantity
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
GetRoomserviceStocks: function(_item_id, _quantity) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_stock_roomservice")+ "/" + _item_id + "?quantity=" + _quantity;
|
|
__apifxn_CallCmsApi("GET", sz_api_url, "GetRoomserviceStocks", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> get room service carts info
|
|
* @param {string} _item_id
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
GetRoomserviceCarts: function(_item_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_carts_roomservice");
|
|
__apifxn_CallCmsApi((_item_id) ? "POST" : "GET", sz_api_url, "GetRoomserviceCarts", _item_id).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> put room service carts info
|
|
* @param {string} _item_id
|
|
* @param {number} _quantity
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
PutRoomserviceCarts: function(_item_id, _quantity) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("put_carts_roomservice");
|
|
__apifxn_CallCmsApi("POST", sz_api_url, "PutRoomserviceCarts", { "itemId": _item_id, "quantity": _quantity }).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> update room service carts info
|
|
* @param {string} _item_id
|
|
* @param {number} _quantity
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
UpdateRoomserviceCarts: function(_cart_id, _quantity) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("update_carts_roomservice");
|
|
__apifxn_CallCmsApi("PATCH", `${sz_api_url}/${_cart_id}`, "UpdateRoomserviceCarts", { "quantity": _quantity }).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> delete room service carts info
|
|
* @param {string} _cart_id
|
|
* @returns
|
|
* null: if _cart_id isn't null it will return specified info with _cart_id
|
|
* {dictionary}
|
|
*/
|
|
DeleteRoomserviceCarts: function(_cart_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("delete_carts_roomservice");
|
|
__apifxn_CallCmsApi("DELETE", _cart_id==null ? `${sz_api_url}` : `${sz_api_url}/${_cart_id}`, "DeleteRoomserviceCarts", null).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve();
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> get room service order info
|
|
* @param {string} _item_id
|
|
* @returns
|
|
* null: if _item_id isn't null it will return specified info with _item_id
|
|
* {dictionary}
|
|
*/
|
|
GetRoomserviceOrders: function(_item_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("get_order_roomservice");
|
|
__apifxn_CallCmsApi((_item_id) ? "POST" : "GET", sz_api_url, "GetRoomserviceOrders", _item_id).then(_result => {
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* HotelTV API ::> order room service
|
|
* @param {string} _cart_id
|
|
* @returns
|
|
* null: if _cart_id isn't null it will return specified info with _cart_id
|
|
* {dictionary}
|
|
*/
|
|
PutRoomserviceOrders: function(_cart_id) {
|
|
return new Promise((resolve, reject) => {
|
|
let sz_api_url = __apifxn_get_api_url("put_order_roomservice");
|
|
__apifxn_CallCmsApi("POST", `${sz_api_url}`, "PutRoomserviceOrders", _cart_id).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
resolve(JSON.parse(_result.data));
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
reject(_error.reason);
|
|
});
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 통계데이터 발송 API
|
|
* @param {array} _arrary_event
|
|
* @param {string} _type : 어메니티&룸서비스의 경우, "indirect" 그외는 null
|
|
*/
|
|
ReportEvent: function(_arrary_event, _type=null) {
|
|
let _json_event = {
|
|
"events": [],
|
|
};
|
|
|
|
for (let _evtidx in _arrary_event) {
|
|
_json_event.events.push({
|
|
"power": _arrary_event[_evtidx].power,
|
|
"location": _arrary_event[_evtidx].location,
|
|
'type': _type,
|
|
"timestamp": Date.now()
|
|
})
|
|
}
|
|
|
|
let sz_api_url = __apifxn_get_api_url("update_event");
|
|
__apifxn_CallCmsApi("POST", sz_api_url, "UpdateEvent", _json_event).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
});
|
|
},
|
|
|
|
ReportBrief: function(_dev_inf, _gst_info, _usage_inf) {
|
|
let _json_report = {
|
|
"updated": "YYYY-MM-DD HH:MM:SS",
|
|
"brnote": "IN-SERVICE",
|
|
"guest_language": "",
|
|
"guest_name": "Jason Smith",
|
|
"guest_checkin": "1899-12-31",
|
|
"guest_checkout": "1899-12-31",
|
|
"guest_roomid": "7635",
|
|
"ker_ver": "0.00.00",
|
|
"cpu_usage": [],
|
|
"free_mem": null,
|
|
"disk_space_free": {
|
|
"flash": { "total": 0, "free": 0, "used": 0, "percent": "0" },
|
|
"storage": { "total": 0, "free": 0, "used": 0, "percent": "0" }
|
|
},
|
|
"cpu_freq": { "current": 0, "min": 0, "max": 0 },
|
|
"ip_addr": "xxx.xxx.xxx.xxx",
|
|
"mac_addr": "",
|
|
"mac_wifi": "",
|
|
"mac_bt": "",
|
|
"speed": 0,
|
|
"manufacture": _dev_inf['manufacture'],
|
|
"model": "",
|
|
"hw_ver": "1.00",
|
|
"sw_ver": "1.1.5",
|
|
"scr_resolution": "1920x1080@60.00Hz - Full screen",
|
|
"temp": 0,
|
|
"uptime": {
|
|
"second": 344632,
|
|
"string": "03d23h43m52s"
|
|
},
|
|
"api_ver": "v1"
|
|
};
|
|
|
|
const _fxn_cvtDateFmt1 = function(_date) {
|
|
var _year = _date.getFullYear();
|
|
var _month = _date.getMonth() + 1;
|
|
if (_month < 10) _month = '0' + _month;
|
|
var _day = _date.getDate();
|
|
if (_day < 10) _day = '0' + _day;
|
|
var _hour = _date.getHours();
|
|
if (_hour < 10) _hour = '0' + _hour;
|
|
var _min = _date.getMinutes();
|
|
if (_min < 10) _min = '0' + _min;
|
|
var _sec = _date.getSeconds();
|
|
if (_sec < 10) _sec = '0' + _sec;
|
|
return _year + "-" + _month + "-" + _day + " " + _hour + ":" + _min + ":" + _sec;
|
|
};
|
|
|
|
const _fxn_sec2Date = function toDateTime(secs) {
|
|
var __t = new Date(1970, 0, 1); // Epoch
|
|
__t.setSeconds(secs);
|
|
var _day = (__t.getDate() - 1);
|
|
if (_day < 10) _day = '0' + _day;
|
|
var _hour = __t.getHours();
|
|
if (_hour < 10) _hour = '0' + _hour;
|
|
var _min = __t.getMinutes();
|
|
if (_min < 10) _min = '0' + _min;
|
|
var _sec = __t.getSeconds();
|
|
if (_sec < 10) _sec = '0' + _sec;
|
|
return _day + "d" + _hour + "h" + _min + "m" + _sec + "s";
|
|
}
|
|
_json_report.updated = _fxn_cvtDateFmt1(new Date());
|
|
_json_report.ker_ver = _dev_inf.boot_version.major + "." + _dev_inf.boot_version.minor + "." + _dev_inf.boot_version.revision;
|
|
_json_report.cpu_usage = [_usage_inf.cpu];
|
|
_json_report.brnote = 'IN-SERVICE';
|
|
_json_report.free_mem = {
|
|
"available": 0,
|
|
"inactive": 0,
|
|
"cached": 0,
|
|
"shared": 0,
|
|
"total": (_usage_inf.mem.total * 1048576),
|
|
"percent": _usage_inf.mem.percent.toString(),
|
|
"free": (_usage_inf.mem.free * 1048576),
|
|
};
|
|
_json_report.guest_language = _gst_info.language;
|
|
_json_report.guest_name = _gst_info.name;
|
|
_json_report.guest_checkin = _gst_info.cidt;
|
|
_json_report.guest_checkout = _gst_info.codt;
|
|
_json_report.guest_roomid = _gst_info.roomid;
|
|
_json_report.ip_addr = _dev_inf.network_info.ip_address;
|
|
_json_report.mac_addr = _dev_inf.network_info.details[0].mac;
|
|
_json_report.mac_wifi = _dev_inf.network_info.details[1].mac;
|
|
_json_report.mac_bt = '';
|
|
|
|
_json_report.model = _dev_inf.model_name;
|
|
_json_report.hw_ver = _dev_inf.hardware_version.major + "." + _dev_inf.hardware_version.minor;
|
|
_json_report.sw_ver = _dev_inf.hcap_middleware_version.major + "." + _dev_inf.hcap_middleware_version.minor + "." + _dev_inf.hcap_middleware_version.revision;
|
|
_json_report.scr_resolution = _dev_inf.display_resolution;
|
|
|
|
_json_report.uptime.second = Math.floor(_dev_inf.uptime / 1000);
|
|
_json_report.uptime.string = _fxn_sec2Date(_json_report.uptime.second);
|
|
|
|
let sz_api_url = __apifxn_get_api_url("set_device_status");
|
|
__apifxn_CallCmsApi("PATCH", sz_api_url, "SetDeviceStatus", _json_report).then(_result => {
|
|
//console.log(`Success::>${_result.data}`);
|
|
}).catch(_error => {
|
|
console.error(`Failure::>${_error.reason}`);
|
|
});
|
|
},
|
|
}
|
|
})(); |