UNPKG

podchat-browser

Version:

Javascript SDK to use POD's Chat Service - Browser Only

548 lines (473 loc) 18.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); 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"); var _excluded = ["typeCode", "ownerId"]; 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.typeCodes.getActiveTypeCode().typeCode); } if (typeof params.ownerId === 'string') { urlencoded.append("ownerId", params.ownerId); } else { urlencoded.append("ownerId", app.typeCodes.getActiveTypeCode().ownerId); } } var reqUniqueId = _utility["default"].generateUUID(); var requestParams = { url: app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS + app.sdkParams.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); } } resultData.contacts.forEach(function (item) { app.store.contacts.addOrUpdate(item); }); 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.typeCodes.getActiveTypeCode().typeCode); } if (typeof params.ownerId === 'string') { urlencoded.append("ownerId", params.ownerId); } else { urlencoded.append("ownerId", app.typeCodes.getActiveTypeCode().ownerId); } } var reqUniqueId = _utility["default"].generateUUID(); var requestParams = { url: app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS + app.sdkParams.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); } } resultData.contacts.forEach(function (item) { app.store.contacts.addOrUpdate(item); }); 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 + app.sdkParams.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; params.contacts.forEach(function (item) { if (item.id) { app.store.contacts.remove(item.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.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; } else { data.typeCode = app.typeCodes.getActiveTypeCode().typeCode; } if (typeof params.ownerId === 'string') { data.ownerId = params.ownerId; } else { data.ownerId = app.typeCodes.getActiveTypeCode().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 typeCode = data.typeCode, ownerId = data.ownerId, rqp = (0, _objectWithoutProperties2["default"])(data, _excluded); var cacheData = app.store.contacts.paginate(rqp, params.cache); if (cacheData) { var returnData = cacheData; app.chatEvents.fireEvent('contactEvents', { type: 'GET_CONTACT', result: returnData, uniqueId: reqUniqueId }); return; } var reqUniqueId = _utility["default"].generateUUID(); var requestParams = { url: app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS + app.sdkParams.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; if (params.cache) { app.store.contacts.saveMany(data, { contacts: _returnData.result }, data.count, data.offset); } _returnData.count = responseData.count; _returnData.requestedSize = data.size; _returnData.hasNext = params.size == _returnData.result.length; 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;