UNPKG

podchat-browser

Version:

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

168 lines (134 loc) 4.61 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _constants = require("../constants"); var _utility = _interopRequireDefault(require("../../utility/utility")); var _dataFormatters = require("../helpers/dataFormatters"); function ContactsMethods(app) { function getContacts(params, callback) { var count = 25, offset = 0, content = {}, cache = false, returnCache = false; if (params) { if (typeof params.cache == 'boolean') { cache = params.cache; } if (parseInt(params.count) > 0) { count = parseInt(params.count); } if (parseInt(params.offset) > 0) { offset = parseInt(params.offset); } if (typeof params.query === 'string') { content.query = params.query; } if (typeof params.email === 'string') { content.email = params.email; } if (typeof params.cellphoneNumber === 'string') { content.cellphoneNumber = params.cellphoneNumber; } if (parseInt(params.contactId) > 0) { content.id = params.contactId; } if (typeof params.uniqueId === 'string') { content.uniqueId = params.uniqueId; } if (typeof params.username === 'string') { content.username = params.username; } if (typeof params.coreUserId !== "undefined") { content.coreUserId = params.coreUserId; } var functionLevelCache = typeof params.cache == 'boolean' ? params.cache : true; } content.size = count; content.offset = offset; var sendMessageParams = { chatMessageVOType: _constants.chatMessageVOTypes.GET_CONTACTS, typeCode: params.typeCode, ownerId: params.ownerId, content: content }; var cacheData = app.store.contacts.paginate(content, cache); if (cacheData) { var returnData = cacheData; callback && callback(returnData); //if (!returnData.hasError) { // app.chatEvents.fireEvent('contactEvents', { // type: 'CONTACTS_LIST_CHANGE', // result: returnData.result // }); //} callback = undefined; return; } /** * Retrieve Contacts from server */ return app.messenger.sendMessage(sendMessageParams, { onResult: function onResult(result) { var returnData = { typeCode: result.typeCode, ownerId: result.ownerId, hasError: result.hasError, cache: false, errorMessage: result.errorMessage, errorCode: result.errorCode }; if (!returnData.hasError) { var messageContent = result.result, messageLength = messageContent.length, resultData = { contacts: [], contentCount: result.contentCount, hasNext: offset + count < result.contentCount && messageLength > 0, nextOffset: offset * 1 + messageLength * 1 }, contactData; for (var i = 0; i < messageLength; i++) { contactData = (0, _dataFormatters.formatDataToMakeContact)(messageContent[i]); if (contactData) { resultData.contacts.push(contactData); } } returnData.result = resultData; } var cloneReturnData = JSON.parse(JSON.stringify(returnData)); cloneReturnData.result.fromCache = false; callback && callback(cloneReturnData); if (!returnData.hasError) { if (cache) { app.store.contacts.saveMany(content, returnData.result, count, offset); } if (returnCache) { app.chatEvents.fireEvent('contactEvents', { type: 'CONTACTS_LIST_CHANGE', result: returnData.result }); } } /** * Delete callback so if server pushes response before * cache, cache won't send data again */ callback = undefined; } }); } function onGetContacts(uniqueId, messageContent, contentCount, chatMessage) { if (app.store.messagesCallbacks[uniqueId]) { app.store.messagesCallbacks[uniqueId](_utility["default"].createReturnData(chatMessage.typeCode, chatMessage.ownerId, false, '', 0, messageContent, contentCount)); } } return { getContacts: getContacts, onGetContacts: onGetContacts }; } var _default = ContactsMethods; exports["default"] = _default;