1 |
|
2 |
|
3 | exports.stringifyIfObject = function (val) {
|
4 | return typeof val === 'object' ? JSON.stringify(val) : val;
|
5 | };
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | exports.formRequestPayload = function (req, data) {
|
11 | if (data.files) {
|
12 | var formData = new FormData();
|
13 |
|
14 | addMultiformData(formData, data);
|
15 | addFiles(formData, data.files);
|
16 |
|
17 | return formData;
|
18 | }
|
19 |
|
20 | req.setRequestHeader('Content-type','application/json; charset=utf-8');
|
21 | return JSON.stringify(data);
|
22 | };
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | exports.parseIfJSON = function (str) {
|
28 | try {
|
29 | return JSON.parse(str);
|
30 | } catch (e) {
|
31 | return str;
|
32 | }
|
33 | };
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | exports.compileRoute = function (route, params) {
|
39 | return route.replace(/(:[a-zA-Z-_]{1,})/g, function () {
|
40 | return params[arguments[0].substr(1)];
|
41 | });
|
42 | };
|
43 |
|
44 |
|
45 |
|
46 | function addMultiformData (formData, data) {
|
47 | var key, arr, i;
|
48 |
|
49 | for (key in data) {
|
50 | if (data.hasOwnProperty(key) && key !== 'files') {
|
51 | if (data[key] instanceof Array) {
|
52 | arr = data[key];
|
53 |
|
54 | for (i = 0; i < arr.length; i += 1) {
|
55 | formData.append(key + '[' + i + ']', exports.stringifyIfObject(arr[i]));
|
56 | }
|
57 | } else {
|
58 | formData.append(key, exports.stringifyIfObject(data[key]));
|
59 | }
|
60 | }
|
61 | }
|
62 | }
|
63 |
|
64 |
|
65 |
|
66 | function addFiles (formData, files) {
|
67 | var file, arr, key, i;
|
68 |
|
69 | for (key in files) {
|
70 | if (files.hasOwnProperty(key)) {
|
71 |
|
72 | if (files[key] instanceof Array) {
|
73 | arr = files[key];
|
74 |
|
75 | for (i = 0; i < arr.length; i += 1) {
|
76 | formData.append(key + '[' + i + ']', arr[i]);
|
77 | }
|
78 | } else {
|
79 | file = files[key];
|
80 | formData.append(key, file);
|
81 | }
|
82 | }
|
83 | }
|
84 | } |
\ | No newline at end of file |