podchat-browser 12.9.21-snapshot.21 → 12.9.21-snapshot.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":"12.9.21-snapshot.21","date":"۱۴۰۵/۷/۱۵","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
1
+ {"version":"12.9.21-snapshot.22","date":"۱۴۰۵/۸/۱۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
package/dist/node/chat.js CHANGED
@@ -3476,14 +3476,16 @@ function Chat(params) {
3476
3476
  }
3477
3477
  }
3478
3478
 
3479
- app.httpRequest.httpRequest({
3479
+ app.fileManager.uploadPodspaceFile({
3480
3480
  url: app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS + app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_NEW,
3481
- method: 'POST',
3482
3481
  headers: {
3483
3482
  'Authorization': 'Bearer ' + app.sdkParams.token
3484
3483
  },
3485
3484
  data: uploadFileData,
3486
- uniqueId: uploadUniqueId
3485
+ uniqueId: uploadUniqueId,
3486
+ options: _objectSpread(_objectSpread({}, params.options), {}, {
3487
+ emitLegacyEvents: true
3488
+ })
3487
3489
  }, function (result) {
3488
3490
  if (!result.hasError) {
3489
3491
  try {
@@ -3608,14 +3610,16 @@ function Chat(params) {
3608
3610
  }
3609
3611
  });
3610
3612
  } else {
3611
- app.httpRequest.httpRequest({
3613
+ app.fileManager.uploadPodspaceFile({
3612
3614
  url: app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS + app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_TO_USERGROUP_NEW.replace('{userGroupHash}', uploadFileData.userGroupHash),
3613
- method: 'POST',
3614
3615
  headers: {
3615
3616
  'Authorization': 'Bearer ' + app.sdkParams.token
3616
3617
  },
3617
3618
  data: uploadFileData,
3618
- uniqueId: uploadUniqueId
3619
+ uniqueId: uploadUniqueId,
3620
+ options: {
3621
+ emitLegacyEvents: true
3622
+ }
3619
3623
  }, function (result) {
3620
3624
  if (!result.hasError) {
3621
3625
  try {
@@ -17,11 +17,15 @@ var upload = {};
17
17
 
18
18
  function UploadMethods(app) {
19
19
  function sendResumableFileMessage(params, callbacks) {
20
- init(params, callbacks);
20
+ var callbackOptions = typeof callbacks === 'function' ? {
21
+ onComplete: callbacks
22
+ } : callbacks || {};
23
+ var emitLegacyEvents = params.emitLegacyEvents !== false;
24
+ init(params, callbackOptions);
21
25
  start(params.uniqueId);
22
26
  }
23
27
 
24
- function init(params, callbacks) {
28
+ function init(params, callbackOptions) {
25
29
  var file = params.file,
26
30
  userGroupHash = params.userGroupHash,
27
31
  threadId = params.threadId,
@@ -52,9 +56,18 @@ function UploadMethods(app) {
52
56
  userGroupHash: userGroupHash,
53
57
  name: file.name
54
58
  },
55
- onError: function onError(error) {},
59
+ onError: function onError(error) {
60
+ callbackOptions.onError && callbackOptions.onError(error);
61
+ },
56
62
  onProgress: function onProgress(bytesUploaded, bytesTotal) {
57
63
  var percentage = (bytesUploaded / bytesTotal * 100).toFixed(0);
64
+ callbackOptions.onProgress && callbackOptions.onProgress({
65
+ uniqueId: uniqueId,
66
+ threadId: threadId,
67
+ progress: Number(percentage),
68
+ state: 'UPLOADING',
69
+ fileObject: fileObject
70
+ });
58
71
 
59
72
  if (percentage > upload[uniqueId].last_percentage) {
60
73
  app.chatEvents.fireEvent('fileUploadEvents', {
@@ -79,7 +92,7 @@ function UploadMethods(app) {
79
92
  }
80
93
  }).then(function (serverPromise) {
81
94
  serverPromise.json().then(function (result) {
82
- callbacks && callbacks(result);
95
+ callbackOptions.onComplete && callbackOptions.onComplete(result);
83
96
  });
84
97
  });
85
98
  delete upload[uniqueId];
@@ -252,7 +252,7 @@ var FileManager = /*#__PURE__*/function () {
252
252
  options.onError && options.onError(status);
253
253
  };
254
254
 
255
- if (emitLegacyEvents && data && data.uniqueId && (data.file || data.image)) {
255
+ if (data && data.uniqueId && (data.file || data.image)) {
256
256
  this._app.chatEvents.fireEvent('fileUploadEvents', {
257
257
  threadId: data.threadId,
258
258
  uniqueId: data.uniqueId,
@@ -47981,7 +47981,7 @@ FilterXSS.prototype.process = function (html) {
47981
47981
  module.exports = FilterXSS;
47982
47982
 
47983
47983
  },{"./default":282,"./parser":284,"./util":285,"cssfilter":153}],287:[function(require,module,exports){
47984
- module.exports={"version":"12.9.21-snapshot.21","date":"۱۴۰۵/۷/۱۵","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
47984
+ module.exports={"version":"12.9.21-snapshot.22","date":"۱۴۰۵/۸/۱۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
47985
47985
  },{}],288:[function(require,module,exports){
47986
47986
  "use strict";
47987
47987
 
@@ -52048,7 +52048,7 @@ callback&&callback({hasError:false,downloadUrl:downloadUrl});return downloadUrl;
52048
52048
  * @link http://docs.pod.land/v1.0.8.0/Developer/CustomPost/605/File
52049
52049
  *
52050
52050
  * @return {object} Uploaded File Object
52051
- */uploadFile=function uploadFile(params,callback){(0,_deprecateMethods.printIsDeprecate)(_deprecateMethods.deprecatedString.uploadFile.methodName);},uploadFileToPodspaceNew=function uploadFileToPodspaceNew(params,callback){var fileName,fileType,fileSize,fileExtension,uploadUniqueId,uploadThreadId;fileName=params.file.name;fileType=params.file.type;fileSize=params.file.size;fileExtension=params.file.name.split('.').pop();var uploadFileData={};if(params){if(typeof params.file!=='undefined'){uploadFileData.file=params.file;}if(params.randomFileName){uploadFileData.fileName=_utility["default"].generateUUID()+'.'+fileExtension;}else{uploadFileData.fileName=fileName;}uploadFileData.fileSize=fileSize;if(parseInt(params.threadId)>0){uploadThreadId=params.threadId;uploadFileData.threadId=params.threadId;}else{uploadThreadId=0;uploadFileData.threadId=0;}if(typeof params.uniqueId=='string'){uploadUniqueId=params.uniqueId;uploadFileData.uniqueId=params.uniqueId;}else{uploadUniqueId=_utility["default"].generateUUID();uploadFileData.uniqueId=uploadUniqueId;}if(typeof params.originalFileName=='string'){uploadFileData.originalFileName=params.originalFileName;}else{uploadFileData.originalFileName=fileName;}}app.httpRequest.httpRequest({url:app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS+app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_NEW,method:'POST',headers:{'Authorization':'Bearer '+app.sdkParams.token},data:uploadFileData,uniqueId:uploadUniqueId},function(result){if(!result.hasError){try{var response=typeof result.result.responseText=='string'?JSON.parse(result.result.responseText):result.result.responseText;callback({hasError:response.hasError,result:response.result});}catch(e){callback({hasError:true,errorCode:999,errorMessage:'[SDK] Problem in Parsing result'});}}else{callback({hasError:true,errorCode:result.errorCode,errorMessage:result.errorMessage});}});return{uniqueId:uploadUniqueId,threadId:uploadThreadId,participant:app.store.user.get(),content:{caption:params.content,file:{uniqueId:uploadUniqueId,fileName:fileName,fileSize:fileSize,fileObject:params.file}}};},/**
52051
+ */uploadFile=function uploadFile(params,callback){(0,_deprecateMethods.printIsDeprecate)(_deprecateMethods.deprecatedString.uploadFile.methodName);},uploadFileToPodspaceNew=function uploadFileToPodspaceNew(params,callback){var fileName,fileType,fileSize,fileExtension,uploadUniqueId,uploadThreadId;fileName=params.file.name;fileType=params.file.type;fileSize=params.file.size;fileExtension=params.file.name.split('.').pop();var uploadFileData={};if(params){if(typeof params.file!=='undefined'){uploadFileData.file=params.file;}if(params.randomFileName){uploadFileData.fileName=_utility["default"].generateUUID()+'.'+fileExtension;}else{uploadFileData.fileName=fileName;}uploadFileData.fileSize=fileSize;if(parseInt(params.threadId)>0){uploadThreadId=params.threadId;uploadFileData.threadId=params.threadId;}else{uploadThreadId=0;uploadFileData.threadId=0;}if(typeof params.uniqueId=='string'){uploadUniqueId=params.uniqueId;uploadFileData.uniqueId=params.uniqueId;}else{uploadUniqueId=_utility["default"].generateUUID();uploadFileData.uniqueId=uploadUniqueId;}if(typeof params.originalFileName=='string'){uploadFileData.originalFileName=params.originalFileName;}else{uploadFileData.originalFileName=fileName;}}app.fileManager.uploadPodspaceFile({url:app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS+app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_NEW,headers:{'Authorization':'Bearer '+app.sdkParams.token},data:uploadFileData,uniqueId:uploadUniqueId,options:_objectSpread(_objectSpread({},params.options),{},{emitLegacyEvents:true})},function(result){if(!result.hasError){try{var response=typeof result.result.responseText=='string'?JSON.parse(result.result.responseText):result.result.responseText;callback({hasError:response.hasError,result:response.result});}catch(e){callback({hasError:true,errorCode:999,errorMessage:'[SDK] Problem in Parsing result'});}}else{callback({hasError:true,errorCode:result.errorCode,errorMessage:result.errorMessage});}});return{uniqueId:uploadUniqueId,threadId:uploadThreadId,participant:app.store.user.get(),content:{caption:params.content,file:{uniqueId:uploadUniqueId,fileName:fileName,fileSize:fileSize,fileObject:params.file}}};},/**
52052
52052
  * Upload File To Pod Space
52053
52053
  *
52054
52054
  * Upload files to Pod Space Server
@@ -52067,7 +52067,7 @@ callback&&callback({hasError:false,downloadUrl:downloadUrl});return downloadUrl;
52067
52067
  fileSize,//fileExtension,
52068
52068
  uploadUniqueId,uploadThreadId;fileName=params.file.name;//fileType = params.file.type;
52069
52069
  fileSize=params.file.size;//fileExtension = params.file.name.split('.').pop();
52070
- var uploadFileData={};if(params){if(typeof params.file!=='undefined'){uploadFileData.file=params.file;}if(parseInt(params.threadId)>0){uploadThreadId=params.threadId;uploadFileData.threadId=params.threadId;}else{uploadThreadId=0;uploadFileData.threadId=0;}if(typeof params.uniqueId=='string'){uploadUniqueId=params.uniqueId;uploadFileData.uniqueId=params.uniqueId;}else{uploadUniqueId=_utility["default"].generateUUID();uploadFileData.uniqueId=uploadUniqueId;}if(typeof params.userGroupHash=='string'){uploadFileData.userGroupHash=params.userGroupHash;}else{callback({hasError:true,errorCode:999,errorMessage:'[SDK] You need to enter a userGroupHash to be able to upload on PodSpace!'});return;}if(typeof params.originalFileName=='string'){uploadFileData.originalFileName=params.originalFileName;}else{uploadFileData.originalFileName=fileName;}if(!params.addToGroupRetryCount){params.addToGroupRetryCount=0;}}if(fileSize>=1024*1024*5){app.uploads.sendResumableFileMessage(params,function(result){if(result.status===200){callback({hasError:false,result:result.result});}else{callback({hasError:true,errorCode:999,errorMessage:'[SDK] error fetch response from podspace'});}});}else{app.httpRequest.httpRequest({url:app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS+app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_TO_USERGROUP_NEW.replace('{userGroupHash}',uploadFileData.userGroupHash),method:'POST',headers:{'Authorization':'Bearer '+app.sdkParams.token},data:uploadFileData,uniqueId:uploadUniqueId},function(result){if(!result.hasError){try{var response=typeof result.result.responseText=='string'?JSON.parse(result.result.responseText):result.result.responseText;callback({hasError:response.hasError,result:response.result});}catch(e){callback({hasError:true,errorCode:999,errorMessage:'[SDK] Problem in Parsing result'});}}else{if(result.errorCode==403&&params.addToGroupRetryCount<2){app.podspaceMethods.addUserToUserGroup({threadId:uploadFileData.threadId},function(result){if(!result.hasError){//Retry the request
52070
+ var uploadFileData={};if(params){if(typeof params.file!=='undefined'){uploadFileData.file=params.file;}if(parseInt(params.threadId)>0){uploadThreadId=params.threadId;uploadFileData.threadId=params.threadId;}else{uploadThreadId=0;uploadFileData.threadId=0;}if(typeof params.uniqueId=='string'){uploadUniqueId=params.uniqueId;uploadFileData.uniqueId=params.uniqueId;}else{uploadUniqueId=_utility["default"].generateUUID();uploadFileData.uniqueId=uploadUniqueId;}if(typeof params.userGroupHash=='string'){uploadFileData.userGroupHash=params.userGroupHash;}else{callback({hasError:true,errorCode:999,errorMessage:'[SDK] You need to enter a userGroupHash to be able to upload on PodSpace!'});return;}if(typeof params.originalFileName=='string'){uploadFileData.originalFileName=params.originalFileName;}else{uploadFileData.originalFileName=fileName;}if(!params.addToGroupRetryCount){params.addToGroupRetryCount=0;}}if(fileSize>=1024*1024*5){app.uploads.sendResumableFileMessage(params,function(result){if(result.status===200){callback({hasError:false,result:result.result});}else{callback({hasError:true,errorCode:999,errorMessage:'[SDK] error fetch response from podspace'});}});}else{app.fileManager.uploadPodspaceFile({url:app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS+app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_TO_USERGROUP_NEW.replace('{userGroupHash}',uploadFileData.userGroupHash),headers:{'Authorization':'Bearer '+app.sdkParams.token},data:uploadFileData,uniqueId:uploadUniqueId,options:{emitLegacyEvents:true}},function(result){if(!result.hasError){try{var response=typeof result.result.responseText=='string'?JSON.parse(result.result.responseText):result.result.responseText;callback({hasError:response.hasError,result:response.result});}catch(e){callback({hasError:true,errorCode:999,errorMessage:'[SDK] Problem in Parsing result'});}}else{if(result.errorCode==403&&params.addToGroupRetryCount<2){app.podspaceMethods.addUserToUserGroup({threadId:uploadFileData.threadId},function(result){if(!result.hasError){//Retry the request
52071
52071
  params.addToGroupRetryCount++;uploadFileToPodspaceUserGroupNew(params,callback);}else{app.errorHandler.raiseError({code:result.errorCode,message:result.errorMessage},callback,true,{});}});}else{app.errorHandler.raiseError({code:result.errorCode,message:result.errorMessage},callback,true,{});}}});}return{uniqueId:uploadUniqueId,threadId:uploadThreadId,participant:app.store.user.get(),content:{caption:params.content,file:{uniqueId:uploadUniqueId,fileName:fileName,fileSize:fileSize,fileObject:params.file}}};},/**
52072
52072
  * Upload File
52073
52073
  *
@@ -68299,11 +68299,15 @@ var upload = {};
68299
68299
 
68300
68300
  function UploadMethods(app) {
68301
68301
  function sendResumableFileMessage(params, callbacks) {
68302
- init(params, callbacks);
68302
+ var callbackOptions = typeof callbacks === 'function' ? {
68303
+ onComplete: callbacks
68304
+ } : callbacks || {};
68305
+ var emitLegacyEvents = params.emitLegacyEvents !== false;
68306
+ init(params, callbackOptions);
68303
68307
  start(params.uniqueId);
68304
68308
  }
68305
68309
 
68306
- function init(params, callbacks) {
68310
+ function init(params, callbackOptions) {
68307
68311
  var file = params.file,
68308
68312
  userGroupHash = params.userGroupHash,
68309
68313
  threadId = params.threadId,
@@ -68334,9 +68338,18 @@ function UploadMethods(app) {
68334
68338
  userGroupHash: userGroupHash,
68335
68339
  name: file.name
68336
68340
  },
68337
- onError: function onError(error) {},
68341
+ onError: function onError(error) {
68342
+ callbackOptions.onError && callbackOptions.onError(error);
68343
+ },
68338
68344
  onProgress: function onProgress(bytesUploaded, bytesTotal) {
68339
68345
  var percentage = (bytesUploaded / bytesTotal * 100).toFixed(0);
68346
+ callbackOptions.onProgress && callbackOptions.onProgress({
68347
+ uniqueId: uniqueId,
68348
+ threadId: threadId,
68349
+ progress: Number(percentage),
68350
+ state: 'UPLOADING',
68351
+ fileObject: fileObject
68352
+ });
68340
68353
 
68341
68354
  if (percentage > upload[uniqueId].last_percentage) {
68342
68355
  app.chatEvents.fireEvent('fileUploadEvents', {
@@ -68361,7 +68374,7 @@ function UploadMethods(app) {
68361
68374
  }
68362
68375
  }).then(function (serverPromise) {
68363
68376
  serverPromise.json().then(function (result) {
68364
- callbacks && callbacks(result);
68377
+ callbackOptions.onComplete && callbackOptions.onComplete(result);
68365
68378
  });
68366
68379
  });
68367
68380
  delete upload[uniqueId];
@@ -69364,7 +69377,7 @@ var FileManager = /*#__PURE__*/function () {
69364
69377
  options.onError && options.onError(status);
69365
69378
  };
69366
69379
 
69367
- if (emitLegacyEvents && data && data.uniqueId && (data.file || data.image)) {
69380
+ if (data && data.uniqueId && (data.file || data.image)) {
69368
69381
  this._app.chatEvents.fireEvent('fileUploadEvents', {
69369
69382
  threadId: data.threadId,
69370
69383
  uniqueId: data.uniqueId,
@@ -1913,50 +1913,50 @@ Thread: <input type="text" id="threadInput" autocomplete="on" width="500">
1913
1913
  <button class="btn" type="button" name="button" id="getArchivedThreads">Get Archived Threads</button>
1914
1914
  <br>
1915
1915
  </fieldset>
1916
- </form>
1917
-
1918
- <br>
1919
- <hr>
1920
- <br>
1921
-
1922
- <form>
1923
- <fieldset>
1924
- <legend>Poll Message (Create, Send, Load and Edit)</legend>
1925
- <label for="pollMessageThread">Thread Id</label>
1926
- <input type="text" id="pollMessageThread" class="custom-thread-id">
1927
- <br>
1928
- <label for="pollMessageText">Message Text</label>
1929
- <input type="text" id="pollMessageText" value="Please choose an option">
1930
- <br>
1931
- <label for="pollQuestion">Poll Question</label>
1932
- <input type="text" id="pollQuestion" value="What is the best time for the meeting?">
1933
- <br>
1934
- <label for="pollAnswers">Answers (one per line)</label>
1935
- <textarea id="pollAnswers" rows="4">Saturday at 10:00
1936
- Sunday at 14:00</textarea>
1937
- <br>
1938
- <button type="button" id="sendPollMessageButton">Send Poll Message</button>
1939
- <br><br>
1940
-
1941
- <label for="pollMessageId">Message Id (for edit)</label>
1942
- <input type="text" id="pollMessageId">
1943
- <label for="pollEditText">Edited Message Text</label>
1944
- <input type="text" id="pollEditText" value="Updated poll message">
1945
- <button type="button" id="editPollMessageButton">Edit Poll Message</button>
1946
- <br><br>
1947
-
1948
- <label for="pollLoadId">Poll Id (entityId)</label>
1949
- <input type="text" id="pollLoadId">
1950
- <button type="button" id="loadPollButton">Load Poll</button>
1951
- <pre id="pollExampleOutput"></pre>
1952
- </fieldset>
1953
- </form>
1954
-
1955
- <br>
1956
- <hr>
1957
- <br>
1958
-
1959
- <form>
1916
+ </form>
1917
+
1918
+ <br>
1919
+ <hr>
1920
+ <br>
1921
+
1922
+ <form>
1923
+ <fieldset>
1924
+ <legend>Poll Message (Create, Send, Load and Edit)</legend>
1925
+ <label for="pollMessageThread">Thread Id</label>
1926
+ <input type="text" id="pollMessageThread" class="custom-thread-id">
1927
+ <br>
1928
+ <label for="pollMessageText">Message Text</label>
1929
+ <input type="text" id="pollMessageText" value="Please choose an option">
1930
+ <br>
1931
+ <label for="pollQuestion">Poll Question</label>
1932
+ <input type="text" id="pollQuestion" value="What is the best time for the meeting?">
1933
+ <br>
1934
+ <label for="pollAnswers">Answers (one per line)</label>
1935
+ <textarea id="pollAnswers" rows="4">Saturday at 10:00
1936
+ Sunday at 14:00</textarea>
1937
+ <br>
1938
+ <button type="button" id="sendPollMessageButton">Send Poll Message</button>
1939
+ <br><br>
1940
+
1941
+ <label for="pollMessageId">Message Id (for edit)</label>
1942
+ <input type="text" id="pollMessageId">
1943
+ <label for="pollEditText">Edited Message Text</label>
1944
+ <input type="text" id="pollEditText" value="Updated poll message">
1945
+ <button type="button" id="editPollMessageButton">Edit Poll Message</button>
1946
+ <br><br>
1947
+
1948
+ <label for="pollLoadId">Poll Id (entityId)</label>
1949
+ <input type="text" id="pollLoadId">
1950
+ <button type="button" id="loadPollButton">Load Poll</button>
1951
+ <pre id="pollExampleOutput"></pre>
1952
+ </fieldset>
1953
+ </form>
1954
+
1955
+ <br>
1956
+ <hr>
1957
+ <br>
1958
+
1959
+ <form>
1960
1960
  <fieldset>
1961
1961
  <legend>Create Thread</legend>
1962
1962
  <label for="createThreadTitle">Thread title</label>
@@ -3147,8 +3147,8 @@ Sunday at 14:00</textarea>
3147
3147
  }
3148
3148
  });
3149
3149
  })
3150
- document.getElementById("sendTextButton")
3151
- .addEventListener("click", function () {
3150
+ document.getElementById("sendTextButton")
3151
+ .addEventListener("click", function () {
3152
3152
  var message = document.getElementById("sendTextMessage").value,
3153
3153
  thread = document.getElementById("sendTextThread").value;
3154
3154
 
@@ -3170,90 +3170,90 @@ Sunday at 14:00</textarea>
3170
3170
  onSeen: function (result) {
3171
3171
  console.log(result.uniqueId + " \t has been Seen!");
3172
3172
  }
3173
- });
3174
- });
3175
-
3176
- /**
3177
- * Poll message: addPoll -> openPoll -> metadata -> send queue
3178
- */
3179
- document.getElementById("sendPollMessageButton")
3180
- .addEventListener("click", function () {
3181
- var answers = document.getElementById("pollAnswers").value
3182
- .split(/\r?\n/)
3183
- .map(function (answer) { return answer.trim(); })
3184
- .filter(function (answer) { return answer.length > 0; }),
3185
- params = {
3186
- threadId: document.getElementById("pollMessageThread").value,
3187
- textMessage: document.getElementById("pollMessageText").value,
3188
- messageType: 1,
3189
- pollRequest: {
3190
- text: document.getElementById("pollQuestion").value,
3191
- answers: answers,
3192
- multipleAnswer: false,
3193
- showResultsAfterClosed: true,
3194
- typeCode: "PUBLIC"
3195
- }
3196
- };
3197
-
3198
- chatAgent.sendPollMessage(params, {
3199
- onPollCreated: function (result) {
3200
- window.examplePollForEdit = result.poll;
3201
- document.getElementById("pollLoadId").value = result.poll.entityId;
3202
- document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3203
- console.log("Poll created and message queued", result);
3204
- },
3205
- onError: function (result) {
3206
- document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3207
- console.error("Poll message error", result);
3208
- },
3209
- onSent: function (result) {
3210
- if (result.messageId) {
3211
- document.getElementById("pollMessageId").value = result.messageId;
3212
- }
3213
- console.log("Poll message sent", result);
3214
- },
3215
- onSeen: function (result) {
3216
- console.log("Poll message seen", result);
3217
- }
3218
- });
3219
- });
3220
-
3221
- document.getElementById("loadPollButton")
3222
- .addEventListener("click", function () {
3223
- var pollId = document.getElementById("pollLoadId").value;
3224
- chatAgent.polls.pollDetails({id: pollId}, function (result) {
3225
- var poll = result.result && result.result.result ? result.result.result : result.result;
3226
- if (!result.hasError) {
3227
- window.examplePollForEdit = poll;
3228
- }
3229
- document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3230
- console.log("Poll details", result);
3231
- });
3232
- });
3233
-
3234
- document.getElementById("editPollMessageButton")
3235
- .addEventListener("click", function () {
3236
- var messageId = document.getElementById("pollMessageId").value,
3237
- poll = window.examplePollForEdit;
3238
-
3239
- if (!messageId || !poll) {
3240
- alert("Load or send a poll first, then provide the message id.");
3241
- return;
3242
- }
3243
-
3244
- chatAgent.editMessage({
3245
- messageId: messageId,
3246
- messageType: 1,
3247
- content: document.getElementById("pollEditText").value,
3248
- poll: poll
3249
- }, function (result) {
3250
- document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3251
- console.log("Poll message edited", result);
3252
- });
3253
- });
3254
-
3255
- /**
3256
- * CUSTOMIZE REACTION
3173
+ });
3174
+ });
3175
+
3176
+ /**
3177
+ * Poll message: addPoll -> openPoll -> metadata -> send queue
3178
+ */
3179
+ document.getElementById("sendPollMessageButton")
3180
+ .addEventListener("click", function () {
3181
+ var answers = document.getElementById("pollAnswers").value
3182
+ .split(/\r?\n/)
3183
+ .map(function (answer) { return answer.trim(); })
3184
+ .filter(function (answer) { return answer.length > 0; }),
3185
+ params = {
3186
+ threadId: document.getElementById("pollMessageThread").value,
3187
+ textMessage: document.getElementById("pollMessageText").value,
3188
+ messageType: 1,
3189
+ pollRequest: {
3190
+ text: document.getElementById("pollQuestion").value,
3191
+ answers: answers,
3192
+ multipleAnswer: false,
3193
+ showResultsAfterClosed: true,
3194
+ typeCode: "PUBLIC"
3195
+ }
3196
+ };
3197
+
3198
+ chatAgent.sendPollMessage(params, {
3199
+ onPollCreated: function (result) {
3200
+ window.examplePollForEdit = result.poll;
3201
+ document.getElementById("pollLoadId").value = result.poll.entityId;
3202
+ document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3203
+ console.log("Poll created and message queued", result);
3204
+ },
3205
+ onError: function (result) {
3206
+ document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3207
+ console.error("Poll message error", result);
3208
+ },
3209
+ onSent: function (result) {
3210
+ if (result.messageId) {
3211
+ document.getElementById("pollMessageId").value = result.messageId;
3212
+ }
3213
+ console.log("Poll message sent", result);
3214
+ },
3215
+ onSeen: function (result) {
3216
+ console.log("Poll message seen", result);
3217
+ }
3218
+ });
3219
+ });
3220
+
3221
+ document.getElementById("loadPollButton")
3222
+ .addEventListener("click", function () {
3223
+ var pollId = document.getElementById("pollLoadId").value;
3224
+ chatAgent.polls.pollDetails({id: pollId}, function (result) {
3225
+ var poll = result.result && result.result.result ? result.result.result : result.result;
3226
+ if (!result.hasError) {
3227
+ window.examplePollForEdit = poll;
3228
+ }
3229
+ document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3230
+ console.log("Poll details", result);
3231
+ });
3232
+ });
3233
+
3234
+ document.getElementById("editPollMessageButton")
3235
+ .addEventListener("click", function () {
3236
+ var messageId = document.getElementById("pollMessageId").value,
3237
+ poll = window.examplePollForEdit;
3238
+
3239
+ if (!messageId || !poll) {
3240
+ alert("Load or send a poll first, then provide the message id.");
3241
+ return;
3242
+ }
3243
+
3244
+ chatAgent.editMessage({
3245
+ messageId: messageId,
3246
+ messageType: 1,
3247
+ content: document.getElementById("pollEditText").value,
3248
+ poll: poll
3249
+ }, function (result) {
3250
+ document.getElementById("pollExampleOutput").textContent = JSON.stringify(result, null, 2);
3251
+ console.log("Poll message edited", result);
3252
+ });
3253
+ });
3254
+
3255
+ /**
3256
+ * CUSTOMIZE REACTION
3257
3257
  */
3258
3258
  document.getElementById("customizeReaction")
3259
3259
  .addEventListener("click", function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podchat-browser",
3
- "version": "12.9.21-snapshot.21",
3
+ "version": "12.9.21-snapshot.22",
4
4
  "description": "Javascript SDK to use POD's Chat Service - Browser Only",
5
5
  "main": "./dist/node/chat.js",
6
6
  "scripts": {
@@ -1 +1 @@
1
- {"version":"12.9.21-snapshot.21","date":"۱۴۰۵/۷/۱۵","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
1
+ {"version":"12.9.21-snapshot.22","date":"۱۴۰۵/۸/۱۶","VersionInfo":"Release: false, Snapshot: true, Is For Test: true"}
package/src/chat.js CHANGED
@@ -82,9 +82,9 @@ function Chat(params) {
82
82
 
83
83
  const reactionsMethods = new ReactionsMethods(app);
84
84
  const contactsMethods = new ContactsMethods(app);
85
- const threadParticipantsMethods = new ThreadParticipantsMethods(app);
86
-
87
- publicized.polls = app.pollsMethods;
85
+ const threadParticipantsMethods = new ThreadParticipantsMethods(app);
86
+
87
+ publicized.polls = app.pollsMethods;
88
88
 
89
89
  var asyncClient,
90
90
  peerId,
@@ -3408,14 +3408,17 @@ function Chat(params) {
3408
3408
  }
3409
3409
  }
3410
3410
 
3411
- app.httpRequest.httpRequest({
3411
+ app.fileManager.uploadPodspaceFile({
3412
3412
  url: app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS + app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_NEW,
3413
- method: 'POST',
3414
3413
  headers: {
3415
3414
  'Authorization': 'Bearer ' + app.sdkParams.token
3416
3415
  },
3417
3416
  data: uploadFileData,
3418
- uniqueId: uploadUniqueId
3417
+ uniqueId: uploadUniqueId,
3418
+ options: {
3419
+ ...params.options,
3420
+ emitLegacyEvents: true
3421
+ }
3419
3422
  }, function (result) {
3420
3423
  if (!result.hasError) {
3421
3424
  try {
@@ -3543,14 +3546,16 @@ function Chat(params) {
3543
3546
  }
3544
3547
  })
3545
3548
  } else {
3546
- app.httpRequest.httpRequest({
3549
+ app.fileManager.uploadPodspaceFile({
3547
3550
  url: app.sdkParams.SERVICE_ADDRESSES.PODSPACE_FILESERVER_ADDRESS + app.sdkParams.SERVICES_PATH.PODSPACE_UPLOAD_FILE_TO_USERGROUP_NEW.replace('{userGroupHash}', uploadFileData.userGroupHash),
3548
- method: 'POST',
3549
3551
  headers: {
3550
3552
  'Authorization': 'Bearer ' + app.sdkParams.token,
3551
3553
  },
3552
3554
  data: uploadFileData,
3553
- uniqueId: uploadUniqueId
3555
+ uniqueId: uploadUniqueId,
3556
+ options: {
3557
+ emitLegacyEvents: true
3558
+ }
3554
3559
  }, function (result) {
3555
3560
  if (!result.hasError) {
3556
3561
  try {
@@ -5397,7 +5402,7 @@ function Chat(params) {
5397
5402
  };
5398
5403
  }
5399
5404
 
5400
- publicized.sendTextMessage = function (params, callbacks) {
5405
+ publicized.sendTextMessage = function (params, callbacks) {
5401
5406
  var metadata = {},
5402
5407
  uniqueId;
5403
5408
 
@@ -5430,116 +5435,116 @@ function Chat(params) {
5430
5435
  threadId: params.threadId,
5431
5436
  participant: app.store.user.get(),
5432
5437
  content: params.content
5433
- };
5434
- };
5435
-
5436
- publicized.sendPollMessage = function (params, callbacks) {
5437
- params = params || {};
5438
-
5439
- if (typeof params.threadId === 'undefined' || params.threadId === null || params.threadId === '') {
5440
- const error = {
5441
- hasError: true,
5442
- errorCode: 400,
5443
- errorMessage: 'threadId is required',
5444
- parameter: 'threadId'
5445
- };
5446
- callbacks && callbacks.onError && callbacks.onError(error);
5447
- return error;
5448
- }
5449
-
5450
- if (typeof params.textMessage !== 'string' || !params.textMessage.trim()) {
5451
- const error = {
5452
- hasError: true,
5453
- errorCode: 400,
5454
- errorMessage: 'textMessage is required',
5455
- parameter: 'textMessage'
5456
- };
5457
- callbacks && callbacks.onError && callbacks.onError(error);
5458
- return error;
5459
- }
5460
-
5461
- const pollRequest = params.pollRequest || {};
5462
- const pollValidation = app.pollsMethods.validateParams('addPoll', pollRequest);
5463
- const invalidAnswer = !Array.isArray(pollRequest.answers)
5464
- || pollRequest.answers.length < 2
5465
- || pollRequest.answers.some(function (answer) {
5466
- return typeof answer !== 'string' || !answer.trim();
5467
- });
5468
- if (pollValidation || invalidAnswer) {
5469
- const error = pollValidation || {
5470
- hasError: true,
5471
- errorCode: 400,
5472
- errorMessage: 'pollRequest.answers must contain at least two items',
5473
- parameter: 'pollRequest.answers'
5474
- };
5475
- callbacks && callbacks.onError && callbacks.onError(error);
5476
- return error;
5477
- }
5478
-
5479
- const uniqueId = params.uniqueId || Utility.generateUUID();
5480
- const sendPollMessage = function (poll) {
5481
- const metadata = app.pollsMethods.encodePollMetadata(poll);
5482
- app.messageQueues.putInChatSendQueue({
5483
- message: {
5484
- chatMessageVOType: chatMessageVOTypes.MESSAGE,
5485
- typeCode: params.typeCode,
5486
- messageType: params.messageType || chatMessageTypes.TEXT,
5487
- subjectId: params.threadId,
5488
- repliedTo: params.repliedTo,
5489
- content: filterXSS(params.textMessage),
5490
- uniqueId: uniqueId,
5491
- systemMetadata: JSON.stringify(params.systemMetadata),
5492
- metadata: metadata,
5493
- pushMsgType: 3
5494
- },
5495
- callbacks: callbacks
5496
- }, function () {
5497
- chatSendQueueHandler();
5498
- });
5499
-
5500
- callbacks && callbacks.onPollCreated && callbacks.onPollCreated({
5501
- poll: poll,
5502
- metadata: metadata,
5503
- messageUniqueId: uniqueId
5504
- });
5505
- };
5506
-
5507
- app.pollsMethods.addPoll(pollRequest, function (createdResult) {
5508
- if (createdResult.hasError) {
5509
- callbacks && callbacks.onError && callbacks.onError(createdResult);
5510
- return;
5511
- }
5512
- const created = createdResult.result && createdResult.result.result
5513
- ? createdResult.result.result
5514
- : createdResult.result;
5515
- const entityId = created && (created.entityId || created.id);
5516
- if (!entityId) {
5517
- callbacks && callbacks.onError && callbacks.onError({
5518
- hasError: true,
5519
- errorCode: 422,
5520
- errorMessage: 'addPoll response does not contain entityId'
5521
- });
5522
- return;
5523
- }
5524
- app.pollsMethods.openPoll({pollId: entityId}, function (openedResult) {
5525
- if (openedResult.hasError) {
5526
- callbacks && callbacks.onError && callbacks.onError(openedResult);
5527
- return;
5528
- }
5529
- const opened = openedResult.result && openedResult.result.result
5530
- ? openedResult.result.result
5531
- : openedResult.result;
5532
- sendPollMessage(opened);
5533
- });
5534
- });
5535
-
5536
- return {
5537
- uniqueId: uniqueId,
5538
- threadId: params.threadId,
5539
- participant: app.store.user.get(),
5540
- content: params.textMessage
5541
- };
5542
- };
5438
+ };
5439
+ };
5440
+
5441
+ publicized.sendPollMessage = function (params, callbacks) {
5442
+ params = params || {};
5443
+
5444
+ if (typeof params.threadId === 'undefined' || params.threadId === null || params.threadId === '') {
5445
+ const error = {
5446
+ hasError: true,
5447
+ errorCode: 400,
5448
+ errorMessage: 'threadId is required',
5449
+ parameter: 'threadId'
5450
+ };
5451
+ callbacks && callbacks.onError && callbacks.onError(error);
5452
+ return error;
5453
+ }
5454
+
5455
+ if (typeof params.textMessage !== 'string' || !params.textMessage.trim()) {
5456
+ const error = {
5457
+ hasError: true,
5458
+ errorCode: 400,
5459
+ errorMessage: 'textMessage is required',
5460
+ parameter: 'textMessage'
5461
+ };
5462
+ callbacks && callbacks.onError && callbacks.onError(error);
5463
+ return error;
5464
+ }
5465
+
5466
+ const pollRequest = params.pollRequest || {};
5467
+ const pollValidation = app.pollsMethods.validateParams('addPoll', pollRequest);
5468
+ const invalidAnswer = !Array.isArray(pollRequest.answers)
5469
+ || pollRequest.answers.length < 2
5470
+ || pollRequest.answers.some(function (answer) {
5471
+ return typeof answer !== 'string' || !answer.trim();
5472
+ });
5473
+ if (pollValidation || invalidAnswer) {
5474
+ const error = pollValidation || {
5475
+ hasError: true,
5476
+ errorCode: 400,
5477
+ errorMessage: 'pollRequest.answers must contain at least two items',
5478
+ parameter: 'pollRequest.answers'
5479
+ };
5480
+ callbacks && callbacks.onError && callbacks.onError(error);
5481
+ return error;
5482
+ }
5483
+
5484
+ const uniqueId = params.uniqueId || Utility.generateUUID();
5485
+ const sendPollMessage = function (poll) {
5486
+ const metadata = app.pollsMethods.encodePollMetadata(poll);
5487
+ app.messageQueues.putInChatSendQueue({
5488
+ message: {
5489
+ chatMessageVOType: chatMessageVOTypes.MESSAGE,
5490
+ typeCode: params.typeCode,
5491
+ messageType: params.messageType || chatMessageTypes.TEXT,
5492
+ subjectId: params.threadId,
5493
+ repliedTo: params.repliedTo,
5494
+ content: filterXSS(params.textMessage),
5495
+ uniqueId: uniqueId,
5496
+ systemMetadata: JSON.stringify(params.systemMetadata),
5497
+ metadata: metadata,
5498
+ pushMsgType: 3
5499
+ },
5500
+ callbacks: callbacks
5501
+ }, function () {
5502
+ chatSendQueueHandler();
5503
+ });
5504
+
5505
+ callbacks && callbacks.onPollCreated && callbacks.onPollCreated({
5506
+ poll: poll,
5507
+ metadata: metadata,
5508
+ messageUniqueId: uniqueId
5509
+ });
5510
+ };
5511
+
5512
+ app.pollsMethods.addPoll(pollRequest, function (createdResult) {
5513
+ if (createdResult.hasError) {
5514
+ callbacks && callbacks.onError && callbacks.onError(createdResult);
5515
+ return;
5516
+ }
5517
+ const created = createdResult.result && createdResult.result.result
5518
+ ? createdResult.result.result
5519
+ : createdResult.result;
5520
+ const entityId = created && (created.entityId || created.id);
5521
+ if (!entityId) {
5522
+ callbacks && callbacks.onError && callbacks.onError({
5523
+ hasError: true,
5524
+ errorCode: 422,
5525
+ errorMessage: 'addPoll response does not contain entityId'
5526
+ });
5527
+ return;
5528
+ }
5529
+ app.pollsMethods.openPoll({pollId: entityId}, function (openedResult) {
5530
+ if (openedResult.hasError) {
5531
+ callbacks && callbacks.onError && callbacks.onError(openedResult);
5532
+ return;
5533
+ }
5534
+ const opened = openedResult.result && openedResult.result.result
5535
+ ? openedResult.result.result
5536
+ : openedResult.result;
5537
+ sendPollMessage(opened);
5538
+ });
5539
+ });
5540
+
5541
+ return {
5542
+ uniqueId: uniqueId,
5543
+ threadId: params.threadId,
5544
+ participant: app.store.user.get(),
5545
+ content: params.textMessage
5546
+ };
5547
+ };
5543
5548
 
5544
5549
  publicized.sendBotMessage = function (params, callbacks) {
5545
5550
  var metadata = {};
@@ -5837,23 +5842,23 @@ function Chat(params) {
5837
5842
  app.httpRequest.cancelFileDownload(params, callback)
5838
5843
  };
5839
5844
 
5840
- publicized.editMessage = function (params, callback) {
5841
- const editContent = filterXSS(params.content);
5842
- const editMetadata = params.poll
5843
- ? app.pollsMethods.encodePollMetadata(params.poll)
5844
- : (typeof params.metadata === 'object' && params.metadata !== null
5845
- ? JSON.stringify(params.metadata)
5846
- : params.metadata);
5847
-
5848
- return app.messenger.sendMessage({
5845
+ publicized.editMessage = function (params, callback) {
5846
+ const editContent = filterXSS(params.content);
5847
+ const editMetadata = params.poll
5848
+ ? app.pollsMethods.encodePollMetadata(params.poll)
5849
+ : (typeof params.metadata === 'object' && params.metadata !== null
5850
+ ? JSON.stringify(params.metadata)
5851
+ : params.metadata);
5852
+
5853
+ return app.messenger.sendMessage({
5849
5854
  chatMessageVOType: chatMessageVOTypes.EDIT_MESSAGE,
5850
5855
  typeCode: params.typeCode,
5851
- messageType: params.messageType,
5856
+ messageType: params.messageType,
5852
5857
  subjectId: params.messageId,
5853
5858
  repliedTo: params.repliedTo,
5854
- content: editContent,
5859
+ content: editContent,
5855
5860
  uniqueId: params.uniqueId,
5856
- metadata: editMetadata,
5861
+ metadata: editMetadata,
5857
5862
  systemMetadata: params.systemMetadata,
5858
5863
  pushMsgType: 3
5859
5864
  }, {
@@ -4,15 +4,19 @@ let upload = {};
4
4
 
5
5
  function UploadMethods(app) {
6
6
  function sendResumableFileMessage(params, callbacks) {
7
+ const callbackOptions = typeof callbacks === 'function'
8
+ ? {onComplete: callbacks}
9
+ : (callbacks || {});
10
+ const emitLegacyEvents = params.emitLegacyEvents !== false;
7
11
 
8
- init(params, callbacks)
12
+ init(params, callbackOptions)
9
13
  start(params.uniqueId)
10
14
 
11
15
 
12
16
  }
13
17
 
14
18
 
15
- function init(params, callbacks) {
19
+ function init(params, callbackOptions) {
16
20
  const {file, userGroupHash, threadId, uniqueId, fileObject, originalFileName} = params
17
21
  upload[uniqueId] = new tus.Upload(file, {
18
22
 
@@ -44,9 +48,17 @@ function UploadMethods(app) {
44
48
  name: file.name,
45
49
  },
46
50
  onError: function (error) {
51
+ callbackOptions.onError && callbackOptions.onError(error);
47
52
  },
48
53
  onProgress: function (bytesUploaded, bytesTotal) {
49
54
  var percentage = (bytesUploaded / bytesTotal * 100).toFixed(0)
55
+ callbackOptions.onProgress && callbackOptions.onProgress({
56
+ uniqueId,
57
+ threadId,
58
+ progress: Number(percentage),
59
+ state: 'UPLOADING',
60
+ fileObject
61
+ });
50
62
  if (percentage > upload[uniqueId].last_percentage) {
51
63
  app.chatEvents.fireEvent('fileUploadEvents', {
52
64
  threadId: threadId,
@@ -70,9 +82,9 @@ function UploadMethods(app) {
70
82
  }
71
83
  })
72
84
  .then(function (serverPromise) {
73
- serverPromise.json()
85
+ serverPromise.json()
74
86
  .then(function (result) {
75
- callbacks && callbacks(result);
87
+ callbackOptions.onComplete && callbackOptions.onComplete(result);
76
88
  })
77
89
 
78
90
  })
@@ -164,7 +164,7 @@ class FileManager {
164
164
  options.onError && options.onError(status);
165
165
  };
166
166
 
167
- if (emitLegacyEvents && data && data.uniqueId && (data.file || data.image)) {
167
+ if (data && data.uniqueId && (data.file || data.image)) {
168
168
  this._app.chatEvents.fireEvent('fileUploadEvents', {
169
169
  threadId: data.threadId,
170
170
  uniqueId: data.uniqueId,