Advertisement
Guest User

Untitled

a guest
Jul 16th, 2017
511
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.18 KB | None | 0 0
  1. public createItem( logItem: IInteractionLogItem): Promise<IInteractionLogItem[]> {
  2. const userPromises: Promise<{}>[] = [];
  3.  
  4. if(logItem.Client && logItem.Client.AccountName){
  5. userPromises.push(this._ensureUser(logItem.Client));
  6. }
  7.  
  8. if(logItem.AssignedTo && logItem.AssignedTo.AccountName){
  9. userPromises.push(this._ensureUser(logItem.AssignedTo));
  10. }
  11.  
  12. if(logItem.ResolvedBy && logItem.ResolvedBy.AccountName){
  13. userPromises.push(this._ensureUser(logItem.ResolvedBy));
  14. }
  15.  
  16. if(logItem.Referrer && logItem.Referrer.AccountName){
  17. userPromises.push(this._ensureUser(logItem.Referrer));
  18. }
  19.  
  20. console.log("SharePointDataProvider.CreateItem: userPromises.length=" + userPromises.length);
  21.  
  22. if( userPromises.length == 0) {
  23. const batch: SPHttpClientBatch = this.webPartContext.spHttpClient.beginBatch();
  24.  
  25. const batchPromises: Promise<{}>[] = [
  26. this._createItem(batch, logItem),
  27. this._getItemsBatched(batch)
  28. ];
  29.  
  30. return this._resolveBatch(batch, batchPromises);
  31. } else if( userPromises.length == 1) {
  32. userPromises[0].then( (value: {}) => {
  33. const batch: SPHttpClientBatch = this.webPartContext.spHttpClient.beginBatch();
  34.  
  35. const batchPromises: Promise<{}>[] = [
  36. this._createItem(batch, logItem),
  37. this._getItemsBatched(batch)
  38. ];
  39.  
  40. return this._resolveBatch(batch, batchPromises);
  41. });
  42. } else {
  43. Promise.all(userPromises).then( (value: {}[]) => {
  44. const batch: SPHttpClientBatch = this.webPartContext.spHttpClient.beginBatch();
  45.  
  46. const batchPromises: Promise<{}>[] = [
  47. this._createItem(batch, logItem),
  48. this._getItemsBatched(batch)
  49. ];
  50.  
  51. return this._resolveBatch(batch, batchPromises);
  52. });
  53. }
  54. }
  55.  
  56. private _ensureUser( user: IInteractionLogPerson): Promise<ISPUser> {
  57. console.log("SharePointDataProvider.EnsureUser( "" + user.AccountName + "" )");
  58. var data = {logonName: user.AccountName};
  59.  
  60. return this._webPartContext.spHttpClient.post(
  61. this._ensureUserUrl,
  62. SPHttpClient.configurations.v1,
  63. { body: JSON.stringify(data) } ).then(
  64. (value: SPHttpClientResponse) => {
  65. console.log("SharePointDataProvider.EnsureUser Got Http Response:"" + value.statusText + """ );
  66. return value.json();
  67. },
  68. (error: any) => console.log("SharePointDataProvider.EnsureUser Rejected: " + error )
  69. ).then((spUser: ISPUser) => {
  70. console.log("SharePointDataProvider.EnsureUser Set Id:" + spUser.Id +" LoginName:"" + spUser.LoginName + """ );
  71. user.Id = spUser.Id;
  72. return spUser;
  73. });
  74. }
  75.  
  76. SharePointDataProvider.EnsureUser( "i:0#.f|membership|bob@pc.org.nz" )
  77. SharePointDataProvider.CreateItem: userPromises.length=1
  78. TypeError: Cannot read property 'then' of undefined
  79. at ILoggerContainer._createInteractionLogItem (d:spfxiLogger-webpartdisti-logger.bundle.js:22103:60)
  80. at ILoggerForm._handleAddButtonClick (d:spfxiLogger-webpartdisti-logger.bundle.js:23173:21)
  81. at Object.r (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:75541)
  82. at a (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:30260)
  83. at Object.s [as executeDispatchesInOrder] (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:30475)
  84. at f (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:26933)
  85. at m (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:27059)
  86. at Array.forEach (<anonymous>)
  87. at r (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:112499)
  88. at Object.processEventQueue (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:28121)
  89. SharePointDataProvider.EnsureUser Got Http Response:"OK"
  90. SharePointDataProvider.EnsureUser Set Id:13 LoginName:"i:0#.f|membership|bob@pc.org.nz"
  91.  
  92. SharePointDataProvider.EnsureUser( "i:0#.f|membership|dennis@carehouse.org.nz" )
  93. SharePointDataProvider.EnsureUser( "i:0#.f|membership|bob@pc.org.nz" )
  94. SharePointDataProvider.CreateItem: userPromises.length=2
  95. TypeError: Cannot read property 'then' of undefined
  96. at ILoggerContainer._createInteractionLogItem (d:spfxiLogger-webpartdisti-logger.bundle.js:22103:60)
  97. at ILoggerForm._handleAddButtonClick (d:spfxiLogger-webpartdisti-logger.bundle.js:23173:21)
  98. at Object.r (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:75541)
  99. at a (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:30260)
  100. at Object.s [as executeDispatchesInOrder] (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:30475)
  101. at f (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:26933)
  102. at m (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:27059)
  103. at Array.forEach (<anonymous>)
  104. at r (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:112499)
  105. at Object.processEventQueue (https://spoprod-a.akamaihd.net/files/sp-client-prod_2017-06-30.017/sp-webpart-workbench-assembly_en-us_f3fed222daad2a0117a4c168deed7705.js:174:28121)
  106. SharePointDataProvider.EnsureUser Got Http Response:"OK"
  107. SharePointDataProvider.EnsureUser Set Id:10 LoginName:"i:0#.f|membership|dennis@carehouse.org.nz"
  108. SharePointDataProvider.EnsureUser Got Http Response:"OK"
  109. SharePointDataProvider.EnsureUser Set Id:13 LoginName:"i:0#.f|membership|bob@pc.org.nz"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement