Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. function writeToAlgolia(object, indexName, operation) {
  2.  
  3. const ALGOLIA_ID = functions.config().algolia.app_id;
  4. const ALGOLIA_ADMIN_KEY = functions.config().algolia.api_key;
  5. const client = algoliasearch(ALGOLIA_ID, ALGOLIA_ADMIN_KEY);
  6. const index = client.initIndex(indexName);
  7.  
  8. switch(operation) {
  9.  
  10. case 'create':
  11. return new Promise((resolve, reject) => {
  12. index.addObject(object)
  13. .then(res => { console.log('res GOOD', res); resolve(res) })
  14. .catch(err => { console.log('err BAD', err); reject(err) });
  15. });
  16.  
  17. case 'update':
  18. return new Promise((resolve, reject) => {
  19. index.saveObject(object)
  20. .then(res => { console.log('res GOOD', res); resolve(res) })
  21. .catch(err => { console.log('err BAD', err); reject(err) });
  22. });
  23.  
  24. case 'delete':
  25. return new Promise((resolve, reject) => {
  26. index.deleteObject(object.objectID)
  27. .then(res => { console.log('res GOOD', res); resolve(res) })
  28. .catch(err => { console.log('err BAD', err); reject(err) });
  29. });
  30. }
  31.  
  32. }
  33.  
  34. exports.syncEquipmentToAlgolia =
  35. functions
  36. .firestore
  37. .document('equipment/{document}')
  38. .onWrite((change, context) => {
  39.  
  40. let operation = '';
  41. let data = change.after.data();
  42.  
  43. if (!change.before.exists) operation = 'create';
  44. else if (!change.after.exists) operation = 'delete';
  45. else operation = 'update';
  46.  
  47. if (data === null) {
  48. data = { objectID: context.params.document }
  49. } else {
  50. data = {
  51. ...data,
  52. objectID: context.params.document
  53. }
  54. }
  55.  
  56. return writeToAlgolia(data, 'equipment', operation)
  57. .then(res => console.log(`SUCCESS: ${operation}`, res))
  58. .catch(err => console.log(`ERROR: ${operation}`, err));
  59.  
  60. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement