reactiveCache.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769
  1. import { DataCache } from 'meteor-reactive-cache';
  2. import { Jsons } from './jsons';
  3. // Server isn't reactive, so search for the data always.
  4. ReactiveCacheServer = {
  5. getBoard(idOrFirstObjectSelector, options) {
  6. const ret = Boards.findOne(idOrFirstObjectSelector, options);
  7. return ret;
  8. },
  9. getBoards(selector, options) {
  10. const ret = Boards.find(selector, options).fetch();
  11. return ret;
  12. },
  13. getList(idOrFirstObjectSelector, options) {
  14. const ret = Lists.findOne(idOrFirstObjectSelector, options);
  15. return ret;
  16. },
  17. getLists(selector, options) {
  18. const ret = Lists.find(selector, options).fetch();
  19. return ret;
  20. },
  21. getSwimlane(idOrFirstObjectSelector, options) {
  22. const ret = Swimlanes.findOne(idOrFirstObjectSelector, options);
  23. return ret;
  24. },
  25. getSwimlanes(selector, options) {
  26. const ret = Swimlanes.find(selector, options).fetch();
  27. return ret;
  28. },
  29. getChecklist(idOrFirstObjectSelector, options) {
  30. const ret = Checklists.findOne(idOrFirstObjectSelector, options);
  31. return ret;
  32. },
  33. getChecklists(selector, options) {
  34. const ret = Checklists.find(selector, options).fetch();
  35. return ret;
  36. },
  37. getChecklistItem(idOrFirstObjectSelector, options) {
  38. const ret = ChecklistItems.findOne(idOrFirstObjectSelector, options);
  39. return ret;
  40. },
  41. getChecklistItems(selector, options) {
  42. const ret = ChecklistItems.find(selector, options).fetch();
  43. return ret;
  44. },
  45. getCard(idOrFirstObjectSelector, options) {
  46. const ret = Cards.findOne(idOrFirstObjectSelector, options);
  47. return ret;
  48. },
  49. getCards(selector, options) {
  50. const ret = Cards.find(selector, options).fetch();
  51. return ret;
  52. },
  53. getCardComment(idOrFirstObjectSelector, options) {
  54. const ret = CardComments.findOne(idOrFirstObjectSelector, options);
  55. return ret;
  56. },
  57. getCardComments(selector, options) {
  58. const ret = CardComments.find(selector, options).fetch();
  59. return ret;
  60. },
  61. getCustomField(idOrFirstObjectSelector, options) {
  62. const ret = CustomFields.findOne(idOrFirstObjectSelector, options);
  63. return ret;
  64. },
  65. getCustomFields(selector, options) {
  66. const ret = CustomFields.find(selector, options).fetch();
  67. return ret;
  68. },
  69. getAttachment(idOrFirstObjectSelector, options) {
  70. const ret = Attachments.findOne(idOrFirstObjectSelector, options);
  71. return ret;
  72. },
  73. getAttachments(selector, options) {
  74. const ret = Attachments.find(selector, options).fetch();
  75. return ret;
  76. },
  77. getUser(idOrFirstObjectSelector, options) {
  78. const ret = Users.findOne(idOrFirstObjectSelector, options);
  79. return ret;
  80. },
  81. getUsers(selector, options) {
  82. const ret = Users.find(selector, options).fetch();
  83. return ret;
  84. },
  85. getOrg(idOrFirstObjectSelector, options) {
  86. const ret = Org.findOne(idOrFirstObjectSelector, options);
  87. return ret;
  88. },
  89. getOrgs(selector, options) {
  90. const ret = Org.find(selector, options).fetch();
  91. return ret;
  92. },
  93. getTeam(idOrFirstObjectSelector, options) {
  94. const ret = Team.findOne(idOrFirstObjectSelector, options);
  95. return ret;
  96. },
  97. getTeams(selector, options) {
  98. const ret = Team.find(selector, options).fetch();
  99. return ret;
  100. },
  101. getActivity(idOrFirstObjectSelector, options) {
  102. const ret = Activities.findOne(idOrFirstObjectSelector, options);
  103. return ret;
  104. },
  105. getActivities(selector, options) {
  106. const ret = Activities.find(selector, options).fetch();
  107. return ret;
  108. },
  109. getRule(idOrFirstObjectSelector, options) {
  110. const ret = Rules.findOne(idOrFirstObjectSelector, options);
  111. return ret;
  112. },
  113. getRules(selector, options) {
  114. const ret = Rules.find(selector, options).fetch();
  115. return ret;
  116. },
  117. getCurrentSetting() {
  118. const ret = Settings.findOne();
  119. return ret;
  120. },
  121. getCurrentUser() {
  122. const ret = Meteor.user();
  123. return ret;
  124. },
  125. }
  126. // only the Client is reactive
  127. // saving the result has a big advantage if the query is big and often searched for the same data again and again
  128. // if the data is changed in the client, the data is saved to the server and depending code is reactive called again
  129. ReactiveCacheClient = {
  130. getBoard(idOrFirstObjectSelector, options) {
  131. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  132. if (!this.__board) {
  133. this.__board = new DataCache(_idOrFirstObjectSelect => {
  134. const __select = Jsons.parse(_idOrFirstObjectSelect);
  135. const _ret = Boards.findOne(__select.idOrFirstObjectSelector, __select.options);
  136. return _ret;
  137. });
  138. }
  139. const ret = this.__board.get(Jsons.stringify(idOrFirstObjectSelect));
  140. return ret;
  141. },
  142. getBoards(selector, options) {
  143. const select = {selector, options}
  144. if (!this.__boards) {
  145. this.__boards = new DataCache(_select => {
  146. const __select = Jsons.parse(_select);
  147. const _ret = Boards.find(__select.selector, __select.options).fetch();
  148. return _ret;
  149. });
  150. }
  151. const ret = this.__boards.get(Jsons.stringify(select));
  152. return ret;
  153. },
  154. getList(idOrFirstObjectSelector, options) {
  155. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  156. if (!this.__list) {
  157. this.__list = new DataCache(_idOrFirstObjectSelect => {
  158. const __select = Jsons.parse(_idOrFirstObjectSelect);
  159. const _ret = Lists.findOne(__select.idOrFirstObjectSelector, __select.options);
  160. return _ret;
  161. });
  162. }
  163. const ret = this.__list.get(Jsons.stringify(idOrFirstObjectSelect));
  164. return ret;
  165. },
  166. getLists(selector, options) {
  167. const select = {selector, options}
  168. if (!this.__lists) {
  169. this.__lists = new DataCache(_select => {
  170. const __select = Jsons.parse(_select);
  171. const _ret = Lists.find(__select.selector, __select.options).fetch();
  172. return _ret;
  173. });
  174. }
  175. const ret = this.__lists.get(Jsons.stringify(select));
  176. return ret;
  177. },
  178. getSwimlane(idOrFirstObjectSelector, options) {
  179. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  180. if (!this.__swimlane) {
  181. this.__swimlane = new DataCache(_idOrFirstObjectSelect => {
  182. const __select = Jsons.parse(_idOrFirstObjectSelect);
  183. const _ret = Swimlanes.findOne(__select.idOrFirstObjectSelector, __select.options);
  184. return _ret;
  185. });
  186. }
  187. const ret = this.__swimlane.get(Jsons.stringify(idOrFirstObjectSelect));
  188. return ret;
  189. },
  190. getSwimlanes(selector, options) {
  191. const select = {selector, options}
  192. if (!this.__swimlanes) {
  193. this.__swimlanes = new DataCache(_select => {
  194. const __select = Jsons.parse(_select);
  195. const _ret = Swimlanes.find(__select.selector, __select.options).fetch();
  196. return _ret;
  197. });
  198. }
  199. const ret = this.__swimlanes.get(Jsons.stringify(select));
  200. return ret;
  201. },
  202. getChecklist(idOrFirstObjectSelector, options) {
  203. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  204. if (!this.__checklist) {
  205. this.__checklist = new DataCache(_idOrFirstObjectSelect => {
  206. const __select = Jsons.parse(_idOrFirstObjectSelect);
  207. const _ret = Checklists.findOne(__select.idOrFirstObjectSelector, __select.options);
  208. return _ret;
  209. });
  210. }
  211. const ret = this.__checklist.get(Jsons.stringify(idOrFirstObjectSelect));
  212. return ret;
  213. },
  214. getChecklists(selector, options) {
  215. const select = {selector, options}
  216. if (!this.__checklists) {
  217. this.__checklists = new DataCache(_select => {
  218. const __select = Jsons.parse(_select);
  219. const _ret = Checklists.find(__select.selector, __select.options).fetch();
  220. return _ret;
  221. });
  222. }
  223. const ret = this.__checklists.get(Jsons.stringify(select));
  224. return ret;
  225. },
  226. getChecklistItem(idOrFirstObjectSelector, options) {
  227. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  228. if (!this.__checklistItem) {
  229. this.__checklistItem = new DataCache(_idOrFirstObjectSelect => {
  230. const __select = Jsons.parse(_idOrFirstObjectSelect);
  231. const _ret = ChecklistItems.findOne(__select.idOrFirstObjectSelector, __select.options);
  232. return _ret;
  233. });
  234. }
  235. const ret = this.__checklistItem.get(Jsons.stringify(idOrFirstObjectSelect));
  236. return ret;
  237. },
  238. getChecklistItems(selector, options) {
  239. const select = {selector, options}
  240. if (!this.__checklistItems) {
  241. this.__checklistItems = new DataCache(_select => {
  242. const __select = Jsons.parse(_select);
  243. const _ret = ChecklistItems.find(__select.selector, __select.options).fetch();
  244. return _ret;
  245. });
  246. }
  247. const ret = this.__checklistItems.get(Jsons.stringify(select));
  248. return ret;
  249. },
  250. getCard(idOrFirstObjectSelector, options) {
  251. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  252. if (!this.__card) {
  253. this.__card = new DataCache(_idOrFirstObjectSelect => {
  254. const __select = Jsons.parse(_idOrFirstObjectSelect);
  255. const _ret = Cards.findOne(__select.idOrFirstObjectSelector, __select.options);
  256. return _ret;
  257. });
  258. }
  259. const ret = this.__card.get(Jsons.stringify(idOrFirstObjectSelect));
  260. return ret;
  261. },
  262. getCards(selector, options) {
  263. const select = {selector, options}
  264. if (!this.__cards) {
  265. this.__cards = new DataCache(_select => {
  266. const __select = Jsons.parse(_select);
  267. const _ret = Cards.find(__select.selector, __select.options).fetch();
  268. return _ret;
  269. });
  270. }
  271. const ret = this.__cards.get(Jsons.stringify(select));
  272. return ret;
  273. },
  274. getCardComment(idOrFirstObjectSelector, options) {
  275. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  276. if (!this.__cardComment) {
  277. this.__cardComment = new DataCache(_idOrFirstObjectSelect => {
  278. const __select = Jsons.parse(_idOrFirstObjectSelect);
  279. const _ret = CardComments.findOne(__select.idOrFirstObjectSelector, __select.options);
  280. return _ret;
  281. });
  282. }
  283. const ret = this.__cardComment.get(Jsons.stringify(idOrFirstObjectSelect));
  284. return ret;
  285. },
  286. getCardComments(selector, options) {
  287. const select = {selector, options}
  288. if (!this.__cardComments) {
  289. this.__cardComments = new DataCache(_select => {
  290. const __select = Jsons.parse(_select);
  291. const _ret = CardComments.find(__select.selector, __select.options).fetch();
  292. return _ret;
  293. });
  294. }
  295. const ret = this.__cardComments.get(Jsons.stringify(select));
  296. return ret;
  297. },
  298. getCustomField(idOrFirstObjectSelector, options) {
  299. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  300. if (!this.__customField) {
  301. this.__customField = new DataCache(_idOrFirstObjectSelect => {
  302. const __select = Jsons.parse(_idOrFirstObjectSelect);
  303. const _ret = CustomFields.findOne(__select.idOrFirstObjectSelector, __select.options);
  304. return _ret;
  305. });
  306. }
  307. const ret = this.__customField.get(Jsons.stringify(idOrFirstObjectSelect));
  308. return ret;
  309. },
  310. getCustomFields(selector, options) {
  311. const select = {selector, options}
  312. if (!this.__customFields) {
  313. this.__customFields = new DataCache(_select => {
  314. const __select = Jsons.parse(_select);
  315. const _ret = CustomFields.find(__select.selector, __select.options).fetch();
  316. return _ret;
  317. });
  318. }
  319. const ret = this.__customFields.get(Jsons.stringify(select));
  320. return ret;
  321. },
  322. getAttachment(idOrFirstObjectSelector, options) {
  323. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  324. if (!this.__attachment) {
  325. this.__attachment = new DataCache(_idOrFirstObjectSelect => {
  326. const __select = Jsons.parse(_idOrFirstObjectSelect);
  327. const _ret = Attachments.findOne(__select.idOrFirstObjectSelector, __select.options);
  328. return _ret;
  329. });
  330. }
  331. const ret = this.__attachment.get(Jsons.stringify(idOrFirstObjectSelect));
  332. return ret;
  333. },
  334. getAttachments(selector, options) {
  335. const select = {selector, options}
  336. if (!this.__attachments) {
  337. this.__attachments = new DataCache(_select => {
  338. const __select = Jsons.parse(_select);
  339. const _ret = Attachments.find(__select.selector, __select.options).fetch();
  340. return _ret;
  341. });
  342. }
  343. const ret = this.__attachments.get(Jsons.stringify(select));
  344. return ret;
  345. },
  346. getUser(idOrFirstObjectSelector, options) {
  347. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  348. if (!this.__user) {
  349. this.__user = new DataCache(_idOrFirstObjectSelect => {
  350. const __select = Jsons.parse(_idOrFirstObjectSelect);
  351. const _ret = Users.findOne(__select.idOrFirstObjectSelector, __select.options);
  352. return _ret;
  353. });
  354. }
  355. const ret = this.__user.get(Jsons.stringify(idOrFirstObjectSelect));
  356. return ret;
  357. },
  358. getUsers(selector, options) {
  359. const select = {selector, options}
  360. if (!this.__users) {
  361. this.__users = new DataCache(_select => {
  362. const __select = Jsons.parse(_select);
  363. const _ret = Users.find(__select.selector, __select.options).fetch();
  364. return _ret;
  365. });
  366. }
  367. const ret = this.__users.get(Jsons.stringify(select));
  368. return ret;
  369. },
  370. getOrg(idOrFirstObjectSelector, options) {
  371. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  372. if (!this.__org) {
  373. this.__org = new DataCache(_idOrFirstObjectSelect => {
  374. const __select = Jsons.parse(_idOrFirstObjectSelect);
  375. const _ret = Org.findOne(__select.idOrFirstObjectSelector, __select.options);
  376. return _ret;
  377. });
  378. }
  379. const ret = this.__org.get(Jsons.stringify(idOrFirstObjectSelect));
  380. return ret;
  381. },
  382. getOrgs(selector, options) {
  383. const select = {selector, options}
  384. if (!this.__orgs) {
  385. this.__orgs = new DataCache(_select => {
  386. const __select = Jsons.parse(_select);
  387. const _ret = Org.find(__select.selector, __select.options).fetch();
  388. return _ret;
  389. });
  390. }
  391. const ret = this.__orgs.get(Jsons.stringify(select));
  392. return ret;
  393. },
  394. getTeam(idOrFirstObjectSelector, options) {
  395. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  396. if (!this.__team) {
  397. this.__team = new DataCache(_idOrFirstObjectSelect => {
  398. const __select = Jsons.parse(_idOrFirstObjectSelect);
  399. const _ret = Team.findOne(__select.idOrFirstObjectSelector, __select.options);
  400. return _ret;
  401. });
  402. }
  403. const ret = this.__team.get(Jsons.stringify(idOrFirstObjectSelect));
  404. return ret;
  405. },
  406. getTeams(selector, options) {
  407. const select = {selector, options}
  408. if (!this.__teams) {
  409. this.__teams = new DataCache(_select => {
  410. const __select = Jsons.parse(_select);
  411. const _ret = Team.find(__select.selector, __select.options).fetch();
  412. return _ret;
  413. });
  414. }
  415. const ret = this.__teams.get(Jsons.stringify(select));
  416. return ret;
  417. },
  418. getActivity(idOrFirstObjectSelector, options) {
  419. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  420. if (!this.__activity) {
  421. this.__activity = new DataCache(_idOrFirstObjectSelect => {
  422. const __select = Jsons.parse(_idOrFirstObjectSelect);
  423. const _ret = Activities.findOne(__select.idOrFirstObjectSelector, __select.options);
  424. return _ret;
  425. });
  426. }
  427. const ret = this.__activity.get(Jsons.stringify(idOrFirstObjectSelect));
  428. return ret;
  429. },
  430. getActivities(selector, options) {
  431. const select = {selector, options}
  432. if (!this.__activities) {
  433. this.__activities = new DataCache(_select => {
  434. const __select = Jsons.parse(_select);
  435. const _ret = Activities.find(__select.selector, __select.options).fetch();
  436. return _ret;
  437. });
  438. }
  439. const ret = this.__activities.get(Jsons.stringify(select));
  440. return ret;
  441. },
  442. getRule(idOrFirstObjectSelector, options) {
  443. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  444. if (!this.__rule) {
  445. this.__rule = new DataCache(_idOrFirstObjectSelect => {
  446. const __select = Jsons.parse(_idOrFirstObjectSelect);
  447. const _ret = Rules.findOne(__select.idOrFirstObjectSelector, __select.options);
  448. return _ret;
  449. });
  450. }
  451. const ret = this.__rule.get(Jsons.stringify(idOrFirstObjectSelect));
  452. return ret;
  453. },
  454. getRules(selector, options) {
  455. const select = {selector, options}
  456. if (!this.__rules) {
  457. this.__rules = new DataCache(_select => {
  458. const __select = Jsons.parse(_select);
  459. const _ret = Rules.find(__select.selector, __select.options).fetch();
  460. return _ret;
  461. });
  462. }
  463. const ret = this.__rules.get(Jsons.stringify(select));
  464. return ret;
  465. },
  466. getCurrentSetting() {
  467. if (!this.__currentSetting || !this.__currentSetting.get()) {
  468. this.__currentSetting = new DataCache(() => {
  469. const _ret = Settings.findOne();
  470. return _ret;
  471. });
  472. }
  473. const ret = this.__currentSetting.get();
  474. return ret;
  475. },
  476. getCurrentUser() {
  477. if (!this.__currentUser || !this.__currentUser.get()) {
  478. this.__currentUser = new DataCache(() => {
  479. const _ret = Meteor.user();
  480. return _ret;
  481. });
  482. }
  483. const ret = this.__currentUser.get();
  484. return ret;
  485. }
  486. }
  487. // global Reactive Cache class to avoid big overhead while searching for the same data often again
  488. // This class calls 2 implementation, for server and client code
  489. //
  490. // having this class here has several advantages:
  491. // - The Programmer hasn't to care about in which context he call's this class
  492. // - having all queries together in 1 class to make it possible to see which queries in Wekan happens, e.g. with console.log
  493. ReactiveCache = {
  494. getBoard(idOrFirstObjectSelector, options) {
  495. let ret;
  496. if (Meteor.isServer) {
  497. ret = ReactiveCacheServer.getBoard(idOrFirstObjectSelector, options);
  498. } else {
  499. ret = ReactiveCacheClient.getBoard(idOrFirstObjectSelector, options);
  500. }
  501. return ret;
  502. },
  503. getBoards(selector, options) {
  504. let ret;
  505. if (Meteor.isServer) {
  506. ret = ReactiveCacheServer.getBoards(selector, options);
  507. } else {
  508. ret = ReactiveCacheClient.getBoards(selector, options);
  509. }
  510. return ret;
  511. },
  512. getList(idOrFirstObjectSelector, options) {
  513. let ret;
  514. if (Meteor.isServer) {
  515. ret = ReactiveCacheServer.getList(idOrFirstObjectSelector, options);
  516. } else {
  517. ret = ReactiveCacheClient.getList(idOrFirstObjectSelector, options);
  518. }
  519. return ret;
  520. },
  521. getLists(selector, options) {
  522. let ret;
  523. if (Meteor.isServer) {
  524. ret = ReactiveCacheServer.getLists(selector, options);
  525. } else {
  526. ret = ReactiveCacheClient.getLists(selector, options);
  527. }
  528. return ret;
  529. },
  530. getSwimlane(idOrFirstObjectSelector, options) {
  531. let ret;
  532. if (Meteor.isServer) {
  533. ret = ReactiveCacheServer.getSwimlane(idOrFirstObjectSelector, options);
  534. } else {
  535. ret = ReactiveCacheClient.getSwimlane(idOrFirstObjectSelector, options);
  536. }
  537. return ret;
  538. },
  539. getSwimlanes(selector, options) {
  540. let ret;
  541. if (Meteor.isServer) {
  542. ret = ReactiveCacheServer.getSwimlanes(selector, options);
  543. } else {
  544. ret = ReactiveCacheClient.getSwimlanes(selector, options);
  545. }
  546. return ret;
  547. },
  548. getChecklist(idOrFirstObjectSelector, options) {
  549. let ret;
  550. if (Meteor.isServer) {
  551. ret = ReactiveCacheServer.getChecklist(idOrFirstObjectSelector, options);
  552. } else {
  553. ret = ReactiveCacheClient.getChecklist(idOrFirstObjectSelector, options);
  554. }
  555. return ret;
  556. },
  557. getChecklists(selector, options) {
  558. let ret;
  559. if (Meteor.isServer) {
  560. ret = ReactiveCacheServer.getChecklists(selector, options);
  561. } else {
  562. ret = ReactiveCacheClient.getChecklists(selector, options);
  563. }
  564. return ret;
  565. },
  566. getChecklistItem(idOrFirstObjectSelector, options) {
  567. let ret;
  568. if (Meteor.isServer) {
  569. ret = ReactiveCacheServer.getChecklistItem(idOrFirstObjectSelector, options);
  570. } else {
  571. ret = ReactiveCacheClient.getChecklistItem(idOrFirstObjectSelector, options);
  572. }
  573. return ret;
  574. },
  575. getChecklistItems(selector, options) {
  576. let ret;
  577. if (Meteor.isServer) {
  578. ret = ReactiveCacheServer.getChecklistItems(selector, options);
  579. } else {
  580. ret = ReactiveCacheClient.getChecklistItems(selector, options);
  581. }
  582. return ret;
  583. },
  584. getCard(idOrFirstObjectSelector, options, noCache = false) {
  585. let ret;
  586. if (Meteor.isServer || noCache === true) {
  587. ret = ReactiveCacheServer.getCard(idOrFirstObjectSelector, options);
  588. } else {
  589. ret = ReactiveCacheClient.getCard(idOrFirstObjectSelector, options);
  590. }
  591. return ret;
  592. },
  593. getCards(selector, options) {
  594. let ret;
  595. if (Meteor.isServer) {
  596. ret = ReactiveCacheServer.getCards(selector, options);
  597. } else {
  598. ret = ReactiveCacheClient.getCards(selector, options);
  599. }
  600. return ret;
  601. },
  602. getCardComment(idOrFirstObjectSelector, options) {
  603. let ret;
  604. if (Meteor.isServer) {
  605. ret = ReactiveCacheServer.getCardComment(idOrFirstObjectSelector, options);
  606. } else {
  607. ret = ReactiveCacheClient.getCardComment(idOrFirstObjectSelector, options);
  608. }
  609. return ret;
  610. },
  611. getCardComments(selector, options) {
  612. let ret;
  613. if (Meteor.isServer) {
  614. ret = ReactiveCacheServer.getCardComments(selector, options);
  615. } else {
  616. ret = ReactiveCacheClient.getCardComments(selector, options);
  617. }
  618. return ret;
  619. },
  620. getCustomField(idOrFirstObjectSelector, options) {
  621. let ret;
  622. if (Meteor.isServer) {
  623. ret = ReactiveCacheServer.getCustomField(idOrFirstObjectSelector, options);
  624. } else {
  625. ret = ReactiveCacheClient.getCustomField(idOrFirstObjectSelector, options);
  626. }
  627. return ret;
  628. },
  629. getCustomFields(selector, options) {
  630. let ret;
  631. if (Meteor.isServer) {
  632. ret = ReactiveCacheServer.getCustomFields(selector, options);
  633. } else {
  634. ret = ReactiveCacheClient.getCustomFields(selector, options);
  635. }
  636. return ret;
  637. },
  638. getAttachment(idOrFirstObjectSelector, options) {
  639. let ret;
  640. if (Meteor.isServer) {
  641. ret = ReactiveCacheServer.getAttachment(idOrFirstObjectSelector, options);
  642. } else {
  643. ret = ReactiveCacheClient.getAttachment(idOrFirstObjectSelector, options);
  644. }
  645. return ret;
  646. },
  647. getAttachments(selector, options) {
  648. let ret;
  649. if (Meteor.isServer) {
  650. ret = ReactiveCacheServer.getAttachments(selector, options);
  651. } else {
  652. ret = ReactiveCacheClient.getAttachments(selector, options);
  653. }
  654. return ret;
  655. },
  656. getUser(idOrFirstObjectSelector, options) {
  657. let ret;
  658. if (Meteor.isServer) {
  659. ret = ReactiveCacheServer.getUser(idOrFirstObjectSelector, options);
  660. } else {
  661. ret = ReactiveCacheClient.getUser(idOrFirstObjectSelector, options);
  662. }
  663. return ret;
  664. },
  665. getUsers(selector, options) {
  666. let ret;
  667. if (Meteor.isServer) {
  668. ret = ReactiveCacheServer.getUsers(selector, options);
  669. } else {
  670. ret = ReactiveCacheClient.getUsers(selector, options);
  671. }
  672. return ret;
  673. },
  674. getOrg(idOrFirstObjectSelector, options) {
  675. let ret;
  676. if (Meteor.isServer) {
  677. ret = ReactiveCacheServer.getOrg(idOrFirstObjectSelector, options);
  678. } else {
  679. ret = ReactiveCacheClient.getOrg(idOrFirstObjectSelector, options);
  680. }
  681. return ret;
  682. },
  683. getOrgs(selector, options) {
  684. let ret;
  685. if (Meteor.isServer) {
  686. ret = ReactiveCacheServer.getOrgs(selector, options);
  687. } else {
  688. ret = ReactiveCacheClient.getOrgs(selector, options);
  689. }
  690. return ret;
  691. },
  692. getTeam(idOrFirstObjectSelector, options) {
  693. let ret;
  694. if (Meteor.isServer) {
  695. ret = ReactiveCacheServer.getTeam(idOrFirstObjectSelector, options);
  696. } else {
  697. ret = ReactiveCacheClient.getTeam(idOrFirstObjectSelector, options);
  698. }
  699. return ret;
  700. },
  701. getTeams(selector, options) {
  702. let ret;
  703. if (Meteor.isServer) {
  704. ret = ReactiveCacheServer.getTeams(selector, options);
  705. } else {
  706. ret = ReactiveCacheClient.getTeams(selector, options);
  707. }
  708. return ret;
  709. },
  710. getActivity(idOrFirstObjectSelector, options) {
  711. let ret;
  712. if (Meteor.isServer) {
  713. ret = ReactiveCacheServer.getActivity(idOrFirstObjectSelector, options);
  714. } else {
  715. ret = ReactiveCacheClient.getActivity(idOrFirstObjectSelector, options);
  716. }
  717. return ret;
  718. },
  719. getActivities(selector, options) {
  720. let ret;
  721. if (Meteor.isServer) {
  722. ret = ReactiveCacheServer.getActivities(selector, options);
  723. } else {
  724. ret = ReactiveCacheClient.getActivities(selector, options);
  725. }
  726. return ret;
  727. },
  728. getRule(idOrFirstObjectSelector, options) {
  729. let ret;
  730. if (Meteor.isServer) {
  731. ret = ReactiveCacheServer.getRule(idOrFirstObjectSelector, options);
  732. } else {
  733. ret = ReactiveCacheClient.getRule(idOrFirstObjectSelector, options);
  734. }
  735. return ret;
  736. },
  737. getRules(selector, options) {
  738. let ret;
  739. if (Meteor.isServer) {
  740. ret = ReactiveCacheServer.getRules(selector, options);
  741. } else {
  742. ret = ReactiveCacheClient.getRules(selector, options);
  743. }
  744. return ret;
  745. },
  746. getCurrentSetting() {
  747. let ret;
  748. if (Meteor.isServer) {
  749. ret = ReactiveCacheServer.getCurrentSetting();
  750. } else {
  751. ret = ReactiveCacheClient.getCurrentSetting();
  752. }
  753. return ret;
  754. },
  755. getCurrentUser() {
  756. let ret;
  757. if (Meteor.isServer) {
  758. ret = ReactiveCacheServer.getCurrentUser();
  759. } else {
  760. ret = ReactiveCacheClient.getCurrentUser();
  761. }
  762. return ret;
  763. },
  764. }
  765. export { ReactiveCache };