Cloud.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getJobStatus = getJobStatus;
  6. exports.getJobsData = getJobsData;
  7. exports.run = run;
  8. exports.startJob = startJob;
  9. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  10. var _decode = _interopRequireDefault(require("./decode"));
  11. var _encode = _interopRequireDefault(require("./encode"));
  12. var _ParseError = _interopRequireDefault(require("./ParseError"));
  13. var _ParseQuery = _interopRequireDefault(require("./ParseQuery"));
  14. var _ParseObject = _interopRequireDefault(require("./ParseObject"));
  15. function run(name, data, options) {
  16. options = options || {};
  17. if (typeof name !== 'string' || name.length === 0) {
  18. throw new TypeError('Cloud function name must be a string.');
  19. }
  20. var requestOptions = {};
  21. if (options.useMasterKey) {
  22. requestOptions.useMasterKey = options.useMasterKey;
  23. }
  24. if (options.sessionToken) {
  25. requestOptions.sessionToken = options.sessionToken;
  26. }
  27. if (options.context && typeof options.context === 'object') {
  28. requestOptions.context = options.context;
  29. }
  30. return _CoreManager.default.getCloudController().run(name, data, requestOptions);
  31. }
  32. function getJobsData() {
  33. return _CoreManager.default.getCloudController().getJobsData({
  34. useMasterKey: true
  35. });
  36. }
  37. function startJob(name, data) {
  38. if (typeof name !== 'string' || name.length === 0) {
  39. throw new TypeError('Cloud job name must be a string.');
  40. }
  41. return _CoreManager.default.getCloudController().startJob(name, data, {
  42. useMasterKey: true
  43. });
  44. }
  45. function getJobStatus(jobStatusId) {
  46. var query = new _ParseQuery.default('_JobStatus');
  47. return query.get(jobStatusId, {
  48. useMasterKey: true
  49. });
  50. }
  51. var DefaultController = {
  52. run: function (name, data, options) {
  53. var RESTController = _CoreManager.default.getRESTController();
  54. var payload = (0, _encode.default)(data, true);
  55. var request = RESTController.request('POST', 'functions/' + name, payload, options);
  56. return request.then(function (res) {
  57. if (typeof res === 'object' && Object.keys(res).length > 0 && !res.hasOwnProperty('result')) {
  58. throw new _ParseError.default(_ParseError.default.INVALID_JSON, 'The server returned an invalid response.');
  59. }
  60. var decoded = (0, _decode.default)(res);
  61. if (decoded && decoded.hasOwnProperty('result')) {
  62. return Promise.resolve(decoded.result);
  63. }
  64. return Promise.resolve(undefined);
  65. });
  66. },
  67. getJobsData: function (options) {
  68. var RESTController = _CoreManager.default.getRESTController();
  69. return RESTController.request('GET', 'cloud_code/jobs/data', null, options);
  70. },
  71. startJob: function (name, data, options) {
  72. var RESTController = _CoreManager.default.getRESTController();
  73. var payload = (0, _encode.default)(data, true);
  74. return RESTController.request('POST', 'jobs/' + name, payload, options);
  75. }
  76. };
  77. _CoreManager.default.setCloudController(DefaultController);