podchat
Version:
Javascript SDK to use POD's Chat Service
449 lines (443 loc) • 17.3 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _constants = require("../../constants");
var _utility = _interopRequireDefault(require("../../../utility/utility"));
var _dataFormatters = require("../../helpers/dataFormatters");
var _errorHandler = require("../../errorHandler");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function ContactsV2(app) {
var publicized = {
add: function add(params) {
var urlencoded = new URLSearchParams();
if (params) {
if (!params.contacts || !Array.isArray(params.contacts)) {
app.errorHandler.raiseError(app.errorHandler.getFilledErrorObject(_objectSpread(_objectSpread({}, _errorHandler.errorList.PARAMETER_REQUIRED), {}, {
variables: ['parameterName'],
replacements: ["contacts"]
})), null, true, {});
return;
}
for (var i in params.contacts) {
if (typeof params.contacts[i].firstName === 'string') {
urlencoded.append("firstName", params.contacts[i].firstName);
} else {
urlencoded.append("firstName", "");
}
if (typeof params.contacts[i].lastName === 'string') {
urlencoded.append("lastName", params.contacts[i].lastName);
} else {
urlencoded.append("lastName", "");
}
if (typeof params.contacts[i].email === 'string') {
urlencoded.append("email", params.contacts[i].email);
} else {
urlencoded.append("email", "");
}
if (typeof params.contacts[i].username === 'string') {
urlencoded.append("username", params.contacts[i].username);
} else {
urlencoded.append("username", "");
}
if (typeof params.contacts[i].cellphoneNumber === 'string') {
urlencoded.append("cellphoneNumber", params.contacts[i].cellphoneNumber);
} else {
urlencoded.append("cellphoneNumber", "");
}
if (typeof params.contacts[i].metadata === 'string') {
urlencoded.append("metadata", params.contacts[i].metadata);
} else {
urlencoded.append("metadata", "");
}
if (typeof params.contacts[i].uniqueId === 'string') {
urlencoded.append("uniqueId", params.contacts[i].uniqueId);
} else {
urlencoded.append("uniqueId", "");
}
}
if (typeof params.typeCode === 'string') {
urlencoded.append("typeCode", params.typeCode);
} else {
urlencoded.append("typeCode", app.sdkParams.generalTypeCode);
}
if (typeof params.ownerId === 'string') {
urlencoded.append("ownerId", params.ownerId);
} else {
urlencoded.append("ownerId", app.sdkParams.typeCodeOwnerId || 1);
}
}
var reqUniqueId = _utility["default"].generateUUID();
var requestParams = {
url: app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS + _constants.SERVICES_PATH.CONTACTS_V2_ADD,
method: 'POST',
body: urlencoded,
data: {},
headers: {
'_token_': app.sdkParams.token,
'_token_issuer_': 1,
"Content-Type": "application/x-www-form-urlencoded"
}
};
app.httpRequest.httpRequest(requestParams, function (result) {
if (!result.hasError) {
var responseData = JSON.parse(result.result.responseText),
returnData = {
hasError: responseData.hasError,
errorMessage: responseData.message,
errorCode: responseData.errorCode
};
if (!responseData.hasError) {
var messageContent = responseData.result,
messageLength = responseData.result.length,
resultData = {
contacts: [],
contentCount: messageLength
},
contactData;
for (var _i = 0; _i < messageLength; _i++) {
contactData = (0, _dataFormatters.formatDataToMakeContact)(messageContent[_i]);
if (contactData) {
resultData.contacts.push(contactData);
}
}
// app.store.contacts.addOrUpdate(contactData);
returnData.result = resultData;
app.chatEvents.fireEvent('contactEvents', {
type: 'ADD_CONTACT',
result: returnData,
uniqueId: reqUniqueId
});
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
response: responseData,
uniqueId: reqUniqueId
});
}
// callback && callback(returnData);
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
error: result,
uniqueId: reqUniqueId
});
}
});
return {
uniqueId: reqUniqueId
};
},
update: function update(params) {
var urlencoded = new URLSearchParams();
if (params) {
if (!params.contacts || !Array.isArray(params.contacts)) {
app.errorHandler.raiseError(app.errorHandler.getFilledErrorObject(_objectSpread(_objectSpread({}, _errorHandler.errorList.PARAMETER_REQUIRED), {}, {
variables: ['parameterName'],
replacements: ["contacts"]
})), null, true, {});
return;
}
for (var i in params.contacts) {
if (typeof params.contacts[i].id !== "undefined") {
urlencoded.append("id", params.contacts[i].id);
} else {
app.errorHandler.raiseError(app.errorHandler.getFilledErrorObject(_objectSpread(_objectSpread({}, _errorHandler.errorList.PARAMETER_REQUIRED), {}, {
variables: ['parameterName'],
replacements: ["id"]
})), null, true, {});
continue;
}
if (typeof params.contacts[i].firstName === 'string') {
urlencoded.append("firstName", params.contacts[i].firstName);
} else {
urlencoded.append("firstName", "");
}
if (typeof params.contacts[i].lastName === 'string') {
urlencoded.append("lastName", params.contacts[i].lastName);
} else {
urlencoded.append("lastName", "");
}
if (typeof params.contacts[i].email === 'string') {
urlencoded.append("email", params.contacts[i].email);
} else {
urlencoded.append("email", "");
}
if (typeof params.contacts[i].username === 'string') {
urlencoded.append("username", params.contacts[i].username);
} else {
urlencoded.append("username", "");
}
if (typeof params.contacts[i].cellphoneNumber === 'string') {
urlencoded.append("cellphoneNumber", params.contacts[i].cellphoneNumber);
} else {
urlencoded.append("cellphoneNumber", "");
}
if (typeof params.contacts[i].metadata === 'string') {
urlencoded.append("metadata", params.contacts[i].metadata);
} else {
urlencoded.append("metadata", "");
}
if (typeof params.contacts[i].uniqueId === 'string') {
urlencoded.append("uniqueId", params.contacts[i].uniqueId);
} else {
urlencoded.append("uniqueId", "");
}
}
if (typeof params.typeCode === 'string') {
urlencoded.append("typeCode", params.typeCode);
} else {
urlencoded.append("typeCode", app.sdkParams.generalTypeCode);
}
if (typeof params.ownerId === 'string') {
urlencoded.append("ownerId", params.ownerId);
} else {
urlencoded.append("ownerId", app.sdkParams.typeCodeOwnerId || 1);
}
}
var reqUniqueId = _utility["default"].generateUUID();
var requestParams = {
url: app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS + _constants.SERVICES_PATH.CONTACTS_V2_UPDATE,
method: 'POST',
body: urlencoded,
data: {},
headers: {
'_token_': app.sdkParams.token,
'_token_issuer_': 1
}
};
app.httpRequest.httpRequest(requestParams, function (result) {
if (!result.hasError) {
var responseData = JSON.parse(result.result.responseText),
returnData = {
hasError: responseData.hasError,
errorMessage: responseData.message,
errorCode: responseData.errorCode
};
if (!responseData.hasError) {
var messageContent = responseData.result,
messageLength = responseData.result.length,
resultData = {
contacts: [],
contentCount: messageLength
},
contactData;
for (var _i2 = 0; _i2 < messageLength; _i2++) {
contactData = (0, _dataFormatters.formatDataToMakeContact)(messageContent[_i2]);
if (contactData) {
resultData.contacts.push(contactData);
}
}
// app.store.contacts.addOrUpdate(contactData)
returnData.result = resultData;
app.chatEvents.fireEvent('contactEvents', {
type: 'UPDATE_CONTACT',
result: returnData,
uniqueId: reqUniqueId
});
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
response: responseData,
uniqueId: reqUniqueId
});
}
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
error: result,
uniqueId: reqUniqueId
});
}
});
return {
uniqueId: reqUniqueId
};
},
remove: function remove(params) {
var data = {};
var urlencoded = new URLSearchParams();
if (params) {
if (!params.contacts || !Array.isArray(params.contacts)) {
app.errorHandler.raiseError(app.errorHandler.getFilledErrorObject(_objectSpread(_objectSpread({}, _errorHandler.errorList.PARAMETER_REQUIRED), {}, {
variables: ['parameterName'],
replacements: ["contacts"]
})), null, true, {});
return;
}
for (var i in params.contacts) {
if (typeof params.contacts[i].id !== "undefined") {
urlencoded.append("id", params.contacts[i].id);
} else {
app.errorHandler.raiseError(app.errorHandler.getFilledErrorObject(_objectSpread(_objectSpread({}, _errorHandler.errorList.PARAMETER_REQUIRED), {}, {
variables: ['parameterName'],
replacements: ["id"]
})), null, true, {});
continue;
}
}
}
var reqUniqueId = _utility["default"].generateUUID();
var requestParams = {
url: app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS + _constants.SERVICES_PATH.CONTACTS_V2_REMOVE,
method: 'POST',
data: {},
body: urlencoded,
headers: {
'_token_': app.sdkParams.token,
'_token_issuer_': 1
}
};
app.httpRequest.httpRequest(requestParams, function (result) {
if (!result.hasError) {
var responseData = JSON.parse(result.result.responseText),
returnData = {
hasError: responseData.hasError,
errorMessage: responseData.message,
errorCode: responseData.errorCode
};
if (!responseData.hasError) {
returnData.result = responseData.result;
//app.store.contacts.remove(data.id)
app.chatEvents.fireEvent('contactEvents', {
type: 'REMOVE_CONTACT',
result: returnData,
uniqueId: reqUniqueId
});
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
response: responseData,
uniqueId: reqUniqueId
});
}
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
error: result,
uniqueId: reqUniqueId
});
}
});
return {
uniqueId: reqUniqueId
};
},
get: function get(params) {
var data = {};
if (params) {
if (typeof params.uniqueId === 'string') {
data.uniqueId = params.uniqueId;
}
if (typeof params.id === 'string') {
data.id = params.id;
}
if (typeof params.firstName === 'string') {
data.firstName = params.firstName;
}
if (typeof params.lastName === 'string') {
data.lastName = params.lastName;
}
if (typeof params.email === 'string') {
data.email = params.email;
}
if (typeof params.q === 'string') {
data.q = params.q;
}
if (typeof params.linkedUserId === 'number') {
data.linkedUserId = params.linkedUserId;
}
if (typeof params.targetUserId === 'string') {
data.targetUserId = params.targetUserId;
}
if (typeof params.typeCode === 'string') {
data.typeCode = params.typeCode;
}
if (typeof params.ownerId === 'string') {
data.ownerId = params.ownerId;
}
if (typeof params.cellphoneNumber === 'string') {
data.cellphoneNumber = params.cellphoneNumber;
}
if (typeof params.email === 'string') {
data.email = params.email;
}
if (typeof params.username === 'string') {
data.userName = params.username;
}
if (parseInt(params.size) > 0) {
data.size = params.size;
} else {
data.size = 10;
}
if (typeof params.offset == "number" && params.offset >= 0) {
data.offset = params.offset;
} else {
data.offset = 0;
}
if (typeof params.metadata === 'string') {
data.metadata = params.metadata;
}
// data.uniqueId = Utility.generateUUID();
}
var reqUniqueId = _utility["default"].generateUUID();
var requestParams = {
url: app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS + _constants.SERVICES_PATH.CONTACTS_V2_GET,
method: 'POST',
data: data,
headers: {
'_token_': app.sdkParams.token,
'_token_issuer_': 1
}
};
app.httpRequest.httpRequest(requestParams, function (result) {
if (!result.hasError) {
var responseData = JSON.parse(result.result.responseText),
returnData = {
hasError: responseData.hasError,
errorMessage: responseData.message,
errorCode: responseData.errorCode
};
if (!responseData.hasError) {
returnData.result = responseData.result;
app.chatEvents.fireEvent('contactEvents', {
type: 'GET_CONTACT',
result: returnData,
uniqueId: reqUniqueId
});
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
response: responseData,
uniqueId: reqUniqueId
});
}
} else {
app.chatEvents.fireEvent('error', {
code: result.errorCode,
message: result.errorMessage,
error: result,
uniqueId: reqUniqueId
});
}
});
return {
uniqueId: reqUniqueId
};
}
};
return publicized;
}
var _default = ContactsV2;
exports["default"] = _default;