mixins.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * DevExtreme (data/odata/mixins.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var stringUtils = require("../../core/utils/string");
  11. var iteratorUtils = require("../../core/utils/iterator");
  12. var odataUtils = require("./utils");
  13. require("./query_adapter");
  14. var DEFAULT_PROTOCOL_VERSION = 2;
  15. var formatFunctionInvocationUrl = function(baseUrl, args) {
  16. return stringUtils.format("{0}({1})", baseUrl, iteratorUtils.map(args || {}, function(value, key) {
  17. return stringUtils.format("{0}={1}", key, value)
  18. }).join(","))
  19. };
  20. var escapeServiceOperationParams = function(params, version) {
  21. if (!params) {
  22. return params
  23. }
  24. var result = {};
  25. iteratorUtils.each(params, function(k, v) {
  26. result[k] = odataUtils.serializeValue(v, version)
  27. });
  28. return result
  29. };
  30. var SharedMethods = {
  31. _extractServiceOptions: function(options) {
  32. options = options || {};
  33. this._url = String(options.url).replace(/\/+$/, "");
  34. this._beforeSend = options.beforeSend;
  35. this._jsonp = options.jsonp;
  36. this._version = options.version || DEFAULT_PROTOCOL_VERSION;
  37. this._withCredentials = options.withCredentials;
  38. this._deserializeDates = options.deserializeDates;
  39. this._filterToLower = options.filterToLower
  40. },
  41. _sendRequest: function(url, method, params, payload) {
  42. return odataUtils.sendRequest(this.version(), {
  43. url: url,
  44. method: method,
  45. params: params || {},
  46. payload: payload
  47. }, {
  48. beforeSend: this._beforeSend,
  49. jsonp: this._jsonp,
  50. withCredentials: this._withCredentials,
  51. deserializeDates: this._deserializeDates
  52. })
  53. },
  54. version: function() {
  55. return this._version
  56. }
  57. };
  58. exports.SharedMethods = SharedMethods;
  59. exports.escapeServiceOperationParams = escapeServiceOperationParams;
  60. exports.formatFunctionInvocationUrl = formatFunctionInvocationUrl;