ParseHooks.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.create = create;
  6. exports.createFunction = createFunction;
  7. exports.createTrigger = createTrigger;
  8. exports.getFunction = getFunction;
  9. exports.getFunctions = getFunctions;
  10. exports.getTrigger = getTrigger;
  11. exports.getTriggers = getTriggers;
  12. exports.remove = remove;
  13. exports.removeFunction = removeFunction;
  14. exports.removeTrigger = removeTrigger;
  15. exports.update = update;
  16. exports.updateFunction = updateFunction;
  17. exports.updateTrigger = updateTrigger;
  18. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  19. var _decode = _interopRequireDefault(require("./decode"));
  20. var _ParseError = _interopRequireDefault(require("./ParseError"));
  21. function getFunctions() {
  22. return _CoreManager.default.getHooksController().get('functions');
  23. }
  24. function getTriggers() {
  25. return _CoreManager.default.getHooksController().get('triggers');
  26. }
  27. function getFunction(name) {
  28. return _CoreManager.default.getHooksController().get('functions', name);
  29. }
  30. function getTrigger(className, triggerName) {
  31. return _CoreManager.default.getHooksController().get('triggers', className, triggerName);
  32. }
  33. function createFunction(functionName, url) {
  34. return create({
  35. functionName: functionName,
  36. url: url
  37. });
  38. }
  39. function createTrigger(className, triggerName, url) {
  40. return create({
  41. className: className,
  42. triggerName: triggerName,
  43. url: url
  44. });
  45. }
  46. function create(hook) {
  47. return _CoreManager.default.getHooksController().create(hook);
  48. }
  49. function updateFunction(functionName, url) {
  50. return update({
  51. functionName: functionName,
  52. url: url
  53. });
  54. }
  55. function updateTrigger(className, triggerName, url) {
  56. return update({
  57. className: className,
  58. triggerName: triggerName,
  59. url: url
  60. });
  61. }
  62. function update(hook) {
  63. return _CoreManager.default.getHooksController().update(hook);
  64. }
  65. function removeFunction(functionName) {
  66. return remove({
  67. functionName: functionName
  68. });
  69. }
  70. function removeTrigger(className, triggerName) {
  71. return remove({
  72. className: className,
  73. triggerName: triggerName
  74. });
  75. }
  76. function remove(hook) {
  77. return _CoreManager.default.getHooksController().remove(hook);
  78. }
  79. var DefaultController = {
  80. get: function (type, functionName, triggerName) {
  81. var url = '/hooks/' + type;
  82. if (functionName) {
  83. url += '/' + functionName;
  84. if (triggerName) {
  85. url += '/' + triggerName;
  86. }
  87. }
  88. return this.sendRequest('GET', url);
  89. },
  90. create: function (hook) {
  91. var url;
  92. if (hook.functionName && hook.url) {
  93. url = '/hooks/functions';
  94. } else if (hook.className && hook.triggerName && hook.url) {
  95. url = '/hooks/triggers';
  96. } else {
  97. return Promise.reject({
  98. error: 'invalid hook declaration',
  99. code: 143
  100. });
  101. }
  102. return this.sendRequest('POST', url, hook);
  103. },
  104. remove: function (hook) {
  105. var url;
  106. if (hook.functionName) {
  107. url = '/hooks/functions/' + hook.functionName;
  108. delete hook.functionName;
  109. } else if (hook.className && hook.triggerName) {
  110. url = '/hooks/triggers/' + hook.className + '/' + hook.triggerName;
  111. delete hook.className;
  112. delete hook.triggerName;
  113. } else {
  114. return Promise.reject({
  115. error: 'invalid hook declaration',
  116. code: 143
  117. });
  118. }
  119. return this.sendRequest('PUT', url, {
  120. __op: 'Delete'
  121. });
  122. },
  123. update: function (hook) {
  124. var url;
  125. if (hook.functionName && hook.url) {
  126. url = '/hooks/functions/' + hook.functionName;
  127. delete hook.functionName;
  128. } else if (hook.className && hook.triggerName && hook.url) {
  129. url = '/hooks/triggers/' + hook.className + '/' + hook.triggerName;
  130. delete hook.className;
  131. delete hook.triggerName;
  132. } else {
  133. return Promise.reject({
  134. error: 'invalid hook declaration',
  135. code: 143
  136. });
  137. }
  138. return this.sendRequest('PUT', url, hook);
  139. },
  140. sendRequest: function (method, url, body) {
  141. return _CoreManager.default.getRESTController().request(method, url, body, {
  142. useMasterKey: true
  143. }).then(function (res) {
  144. var decoded = (0, _decode.default)(res);
  145. if (decoded) {
  146. return Promise.resolve(decoded);
  147. }
  148. return Promise.reject(new _ParseError.default(_ParseError.default.INVALID_JSON, 'The server returned an invalid response.'));
  149. });
  150. }
  151. };
  152. _CoreManager.default.setHooksController(DefaultController);