UNPKG

podchat-browser

Version:

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

155 lines (145 loc) 7.92 kB
function SDKParams() { return { SERVICE_ADDRESSES: { SSO_ADDRESS: 'https://accounts.pod.ir', PLATFORM_ADDRESS: 'https://api.pod.ir/srv/core', FILESERVER_ADDRESS: 'https://core.pod.ir', PODSPACE_FILESERVER_ADDRESS: 'https://podspace.pod.ir', MAP_ADDRESS: 'https://api.neshan.org/v2' }, token: "111", generalTypeCode: "default", typeCodeOwnerId: null, mapApiKey: '8b77db18704aa646ee5aaea13e7370f4f88b9e8c', productEnv: 'undefined', forceWaitQueueInMemory: false, grantDeviceIdFromSSO: false, deliveryIntervalPitch: 2000, seenIntervalPitch: 2000, systemMessageIntervalPitch: 1000, messagesDelivery: {}, messagesSeen: {}, deliveryInterval: undefined, seenInterval: undefined, getImageFromLinkObjects: {}, locationPingTypes: { 'CHAT': 1, 'THREAD': 2, 'CONTACTS': 3 }, isTypingInterval: undefined, protocol: 'websocket', deviceId: undefined, socketAddress: "", serverName: "", wsConnectionWaitTime: 0, connectionRetryInterval: 0, msgPriority: 1, messageTtl: 10000, reconnectOnClose: false, asyncLogging: undefined, chatPingMessageInterval: 20000, getUserInfoTimeout: undefined, connectionCheckTimeout: 0, httpRequestTimeout: 0, asyncRequestTimeout: 0, connectionCheckTimeoutThreshold: undefined, httpUploadRequestTimeout: 0, actualTimingLog: false, consoleLogging: false, fullResponseObject: false, webrtcConfig: null, callOptions: {}, asyncPriority: undefined, SERVICES_PATH: { // Grant Devices SSO_DEVICES: '/oauth2/grants/devices', SSO_GENERATE_KEY: '/handshake/users/', SSO_GET_KEY: '/handshake/keys/', // Contacts ADD_CONTACTS: '/nzh/addContacts', UPDATE_CONTACTS: '/nzh/updateContacts', REMOVE_CONTACTS: '/nzh/removeContacts', SEARCH_CONTACTS: '/nzh/listContacts', // Contacts CONTACTS_V2_ADD: '/nzh/contact/addContacts', CONTACTS_V2_UPDATE: '/nzh/contact/updateContacts', CONTACTS_V2_REMOVE: '/nzh/removeContacts', CONTACTS_V2_GET: '/nzh/contact/contacts', // File/Image Upload and Download UPLOAD_IMAGE: '/nzh/uploadImage', GET_IMAGE: '/nzh/image/', UPLOAD_FILE: '/nzh/uploadFile', GET_FILE: '/nzh/file/', // POD Drive Services PODSPACE_UPLOAD_FILE_TO_USERGROUP: '/userGroup/uploadFile', //TODO: to be removed PODSPACE_UPLOAD_FILE_TO_USERGROUP_NEW: '/api/usergroups/{userGroupHash}/files', PODSPACE_UPLOAD_IMAGE_TO_USERGROUP: '/userGroup/uploadImage', //TODO: to be removed PODSPACE_UPLOAD_IMAGE_TO_USERGROUP_NEW: '/api/usergroups/{userGroupHash}/images', //PODSPACE_UPLOAD_FILE: '/nzh/drive/uploadFile', //PODSPACE_UPLOAD_FILE_FROM_URL: '/nzh/drive/uploadFileFromUrl', //TODO: maybe deprecated PODSPACE_UPLOAD_IMAGE: '/nzh/drive/uploadImage', //TODO: to be removed PODSPACE_UPLOAD_IMAGE_NEW: '/api/images', PODSPACE_UPLOAD_FILE_NEW: '/api/files', PODSPACE_DOWNLOAD_FILE: '/nzh/drive/downloadFile', //TODO: to be removed PODSPACE_DOWNLOAD_FILE_NEW: '/api/files/{fileHash}', PODSPACE_DOWNLOAD_IMAGE: '/nzh/drive/downloadImage', //TODO: to be removed PODSPACE_DOWNLOAD_IMAGE_NEW: '/api/images/{fileHash}', PODSPACE_DOWNLOAD_IMAGE_V2: '/api/v2/images/{fileHash}', ADD_CONTACT_TYPE: '/nzh/biz/addContactType', REGISTER_CONTACT_TYPE_IN_CHAT: '/nzh/manage/registerContactTypeForEvent', CHECK_CONTACT_TYPE_REGISTERED: '/nzh/manage/checkContactTypeRegisteredForEvent', DISABLE_CONTACT_TYPE: '/nzh/manage/disableContactEvent', // Neshan Map REVERSE: '/reverse', SEARCH: '/search', ROUTING: '/routing', STATIC_IMAGE: '/static' }, } } function initSdkParams(app, params) { app.sdkParams.appId = params.appId || 'PodChat'; app.sdkParams.token = params.token || "111"; app.sdkParams.mapApiKey = params.mapApiKey || '8b77db18704aa646ee5aaea13e7370f4f88b9e8c'; app.sdkParams.productEnv = (typeof navigator != 'undefined') ? navigator.product : 'undefined'; app.sdkParams.forceWaitQueueInMemory = (params.forceWaitQueueInMemory && typeof params.forceWaitQueueInMemory === 'boolean') ? params.forceWaitQueueInMemory : false; app.sdkParams.grantDeviceIdFromSSO = (params.grantDeviceIdFromSSO && typeof params.grantDeviceIdFromSSO === 'boolean') ? params.grantDeviceIdFromSSO : false; app.sdkParams.seenIntervalPitch = params.seenIntervalPitch || 2000; app.sdkParams.systemMessageIntervalPitch = params.systemMessageIntervalPitch || 1000; app.sdkParams.socketAddress = params.socketAddress; app.sdkParams.serverName = params.serverName; app.sdkParams.wsConnectionWaitTime = params.wsConnectionWaitTime; app.sdkParams.connectionRetryInterval = params.connectionRetryInterval; app.sdkParams.msgPriority = params.msgPriority; app.sdkParams.messageTtl = params.messageTtl || 10000; app.sdkParams.reconnectOnClose = params.reconnectOnClose; app.sdkParams.asyncLogging = params.asyncLogging; app.sdkParams.connectionCheckTimeout = params.connectionCheckTimeout; app.sdkParams.httpRequestTimeout = (params.httpRequestTimeout >= 0) ? params.httpRequestTimeout : 0; app.sdkParams.asyncRequestTimeout = (typeof params.asyncRequestTimeout === 'number' && params.asyncRequestTimeout >= 0) ? params.asyncRequestTimeout : 0; app.sdkParams.connectionCheckTimeoutThreshold = params.connectionCheckTimeoutThreshold; app.sdkParams.httpUploadRequestTimeout = (params.httpUploadRequestTimeout >= 0) ? params.httpUploadRequestTimeout : 0; app.sdkParams.actualTimingLog = (params.asyncLogging.actualTiming && typeof params.asyncLogging.actualTiming === 'boolean') ? params.asyncLogging.actualTiming : false; app.sdkParams.consoleLogging = (params.asyncLogging.consoleLogging && typeof params.asyncLogging.consoleLogging === 'boolean') ? params.asyncLogging.consoleLogging : false; app.sdkParams.fullResponseObject = params.fullResponseObject || false; app.sdkParams.webrtcConfig = (params.webrtcConfig ? params.webrtcConfig : null); app.sdkParams.chatPingMessageInterval = params.chatPingMessageInterval; app.sdkParams.protocol = params.protocol; app.sdkParams.callRequestTimeout = (typeof params.callRequestTimeout === 'number' && params.callRequestTimeout >= 0) ? params.callRequestTimeout : 10000 app.sdkParams.callOptions = params.callOptions; app.sdkParams.enableCallDivs = params.callOptions && typeof params.callOptions.enableCallDivs !== "undefined" ? params.callOptions.enableCallDivs : true; params.ssoHost && (app.sdkParams.SERVICE_ADDRESSES.SSO_ADDRESS = params.ssoHost); params.platformHost && (app.sdkParams.SERVICE_ADDRESSES.PLATFORM_ADDRESS = params.platformHost); params.fileServer && (app.sdkParams.SERVICE_ADDRESSES.FILESERVER_ADDRESS = params.fileServer); params.podSpaceFileServer && (app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS = params.podSpaceFileServer); params.mapServer && (app.sdkParams.SERVICE_ADDRESSES.MAP_ADDRESS = params.mapServer); } export {SDKParams, initSdkParams};