Cloud.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
  10. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  11. var _decode = _interopRequireDefault(require("./decode"));
  12. var _encode = _interopRequireDefault(require("./encode"));
  13. var _ParseError = _interopRequireDefault(require("./ParseError"));
  14. var _ParseQuery = _interopRequireDefault(require("./ParseQuery"));
  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.installationId) {
  28. requestOptions.installationId = options.installationId;
  29. }
  30. if (options.context && typeof options.context === 'object') {
  31. requestOptions.context = options.context;
  32. }
  33. return _CoreManager.default.getCloudController().run(name, data, requestOptions);
  34. }
  35. function getJobsData() {
  36. return _CoreManager.default.getCloudController().getJobsData({
  37. useMasterKey: true
  38. });
  39. }
  40. function startJob(name, data) {
  41. if (typeof name !== 'string' || name.length === 0) {
  42. throw new TypeError('Cloud job name must be a string.');
  43. }
  44. return _CoreManager.default.getCloudController().startJob(name, data, {
  45. useMasterKey: true
  46. });
  47. }
  48. function getJobStatus(jobStatusId) {
  49. var query = new _ParseQuery.default('_JobStatus');
  50. return query.get(jobStatusId, {
  51. useMasterKey: true
  52. });
  53. }
  54. var DefaultController = {
  55. run: function (name, data, options) {
  56. var RESTController = _CoreManager.default.getRESTController();
  57. var payload = (0, _encode.default)(data, true);
  58. var request = RESTController.request('POST', 'functions/' + name, payload, options);
  59. return request.then(function (res) {
  60. if (typeof res === 'object' && Object.keys(res).length > 0 && !res.hasOwnProperty('result')) {
  61. throw new _ParseError.default(_ParseError.default.INVALID_JSON, 'The server returned an invalid response.');
  62. }
  63. var decoded = (0, _decode.default)(res);
  64. if (decoded && decoded.hasOwnProperty('result')) {
  65. return Promise.resolve(decoded.result);
  66. }
  67. return Promise.resolve(undefined);
  68. });
  69. },
  70. getJobsData: function (options) {
  71. var RESTController = _CoreManager.default.getRESTController();
  72. return RESTController.request('GET', 'cloud_code/jobs/data', null, options);
  73. },
  74. startJob: function () {
  75. var _startJob = (0, _asyncToGenerator2.default)(function* (name, data, options) {
  76. var _response$_headers;
  77. var RESTController = _CoreManager.default.getRESTController();
  78. var payload = (0, _encode.default)(data, true);
  79. options.returnStatus = true;
  80. var response = yield RESTController.request('POST', 'jobs/' + name, payload, options);
  81. return (_response$_headers = response._headers) == null ? void 0 : _response$_headers['X-Parse-Job-Status-Id'];
  82. });
  83. function startJob() {
  84. return _startJob.apply(this, arguments);
  85. }
  86. return startJob;
  87. }()
  88. };
  89. _CoreManager.default.setCloudController(DefaultController);