@firedesktop/react-base 1.16.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  export interface ILabels {
2
+ errorBadRequest: string;
2
3
  errorGeneric: string;
3
4
  errorServerNotAvailable: string;
4
5
  errorSessionExpired: string;
@@ -2,12 +2,13 @@ import * as Types from './Types';
2
2
  declare class FetchWrapper {
3
3
  apiVersion?: string;
4
4
  labels?: Types.ILabels;
5
- status_401_403?: () => void;
6
- constructor(apiVersion?: string, labels?: Types.ILabels, status_401_403?: () => void);
7
- get: (url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
8
- post: (url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
9
- put: (url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
10
- delete: (url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
11
- generic: (method: string, url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean, version?: string, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
5
+ status_401?: () => void;
6
+ status_403?: () => void;
7
+ constructor(apiVersion?: string, labels?: Types.ILabels, status_401?: () => void, status_403?: () => void);
8
+ get: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
9
+ post: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
10
+ put: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
11
+ delete: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
12
+ generic: (method: string, url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean, version?: string, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
12
13
  }
13
14
  export default FetchWrapper;
@@ -2,6 +2,7 @@ var Constants = (function () {
2
2
  function Constants() {
3
3
  }
4
4
  Constants.labels = {
5
+ errorBadRequest: 'Request is not in a valid format',
5
6
  errorGeneric: 'Sorry we have errors on the remote server',
6
7
  errorServerNotAvailable: 'Server not available',
7
8
  errorSessionExpired: 'Your session has expired, please login.',
@@ -9,30 +10,30 @@ var Constants = (function () {
9
10
  return Constants;
10
11
  }());
11
12
  var FetchWrapper = (function () {
12
- function FetchWrapper(apiVersion, labels, status_401_403) {
13
+ function FetchWrapper(apiVersion, labels, status_401, status_403) {
13
14
  var _this = this;
14
- this.get = function (url, token, params, isFile, isBlob) {
15
+ this.get = function (url, token, onGenericServerError, params, isFile, isBlob) {
15
16
  if (isFile === void 0) { isFile = false; }
16
17
  if (isBlob === void 0) { isBlob = false; }
17
- return _this.generic('GET', url, token, params, isFile, isBlob);
18
+ return _this.generic('GET', url, token, onGenericServerError, params, isFile, isBlob);
18
19
  };
19
- this.post = function (url, token, params, isFile, isBlob, additionalParams) {
20
+ this.post = function (url, token, onGenericServerError, params, isFile, isBlob, additionalParams) {
20
21
  if (isFile === void 0) { isFile = false; }
21
22
  if (isBlob === void 0) { isBlob = false; }
22
23
  if (additionalParams === void 0) { additionalParams = []; }
23
- return _this.generic('POST', url, token, params, isFile, isBlob, _this.apiVersion, additionalParams);
24
+ return _this.generic('POST', url, token, onGenericServerError, params, isFile, isBlob, _this.apiVersion, additionalParams);
24
25
  };
25
- this.put = function (url, token, params, isFile, isBlob) {
26
+ this.put = function (url, token, onGenericServerError, params, isFile, isBlob) {
26
27
  if (isFile === void 0) { isFile = false; }
27
28
  if (isBlob === void 0) { isBlob = false; }
28
- return _this.generic('PUT', url, token, params, isFile, isBlob);
29
+ return _this.generic('PUT', url, token, onGenericServerError, params, isFile, isBlob);
29
30
  };
30
- this.delete = function (url, token, params, isFile, isBlob) {
31
+ this.delete = function (url, token, onGenericServerError, params, isFile, isBlob) {
31
32
  if (isFile === void 0) { isFile = false; }
32
33
  if (isBlob === void 0) { isBlob = false; }
33
- return _this.generic('DELETE', url, token, params, isFile, isBlob);
34
+ return _this.generic('DELETE', url, token, onGenericServerError, params, isFile, isBlob);
34
35
  };
35
- this.generic = function (method, url, token, params, isFile, isBlob, version, additionalParams) {
36
+ this.generic = function (method, url, token, onGenericServerError, params, isFile, isBlob, version, additionalParams) {
36
37
  if (isFile === void 0) { isFile = false; }
37
38
  if (isBlob === void 0) { isBlob = false; }
38
39
  if (version === void 0) { version = _this.apiVersion; }
@@ -70,7 +71,8 @@ var FetchWrapper = (function () {
70
71
  headers: headers
71
72
  };
72
73
  var labels = _this.labels;
73
- var status_401_403 = _this.status_401_403;
74
+ var status_401 = _this.status_401;
75
+ var status_403 = _this.status_403;
74
76
  return fetch(url, requestInit)
75
77
  .then(function (response) {
76
78
  if (response.status < 200 || response.status >= 300)
@@ -84,14 +86,25 @@ var FetchWrapper = (function () {
84
86
  console.error("Error on fetch url: " + url);
85
87
  if (!error || error.message === 'Failed to fetch')
86
88
  throw new Error(labels.errorServerNotAvailable);
87
- if (error.text) {
88
- if ((error.status === 401 || error.status === 403) && status_401_403) {
89
- status_401_403();
89
+ if (error.status === 401 && status_401) {
90
+ status_401();
91
+ }
92
+ else if (error.status === 403 && status_401) {
93
+ status_403();
94
+ }
95
+ else if (error.status === 400 && onGenericServerError) {
96
+ onGenericServerError(error.status);
97
+ }
98
+ if (!error.text) {
99
+ if (error.status === 400) {
100
+ throw new Error(labels.errorBadRequest);
101
+ }
102
+ else if (error.status === 401 || error.status === 403) {
90
103
  throw new Error(labels.errorSessionExpired);
91
104
  }
92
- else
93
- return error.text();
94
105
  }
106
+ else
107
+ return error.text();
95
108
  if (error.message && error.message !== '')
96
109
  throw error.message;
97
110
  throw new Error(labels.errorGeneric);
@@ -105,7 +118,8 @@ var FetchWrapper = (function () {
105
118
  });
106
119
  };
107
120
  this.apiVersion = apiVersion;
108
- this.status_401_403 = status_401_403;
121
+ this.status_401 = status_401;
122
+ this.status_403 = status_403;
109
123
  if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
110
124
  this.labels = labels;
111
125
  else
@@ -1 +1 @@
1
- {"version":3,"file":"fetchWrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/fetchWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchWrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/fetchWrapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@firedesktop/react-base",
3
- "version": "1.16.0",
3
+ "version": "1.16.1",
4
4
  "license": "ISC",
5
5
  "main": "dist/index.js",
6
6
  "description": "This is the FireDesktop base package used to support every React Project in this Company.",
7
7
  "author": "alessandro.gambaro",
8
8
  "repository": "https://firedesktopDevOps@dev.azure.com/firedesktopDevOps/baseFEComponents/_git/baseFEComponents",
9
9
  "dependencies": {
10
- "@syncfusion/ej2-popups": "^18.3.47",
10
+ "@syncfusion/ej2-popups": "^18.3.50",
11
11
  "react": "^16.14.0",
12
12
  "react-dom": "^16.14.0",
13
13
  "react-redux": "^7.2.1"
@@ -36,7 +36,7 @@
36
36
  "peerDependencies": {},
37
37
  "scripts": {
38
38
  "distribute_not_working": "rmdir /s /q dist & mkdir dist && npx babel src/lib --out-dir dist --extensions \".js,.ts,.tsx\" --source-maps inline",
39
- "start": "react-scripts start && copy ./src/lib/styles/* ./dist/styles/ && tsc",
39
+ "start": "react-scripts start",
40
40
  "distribute": "rmdir /s /q dist & mkdir dist\\styles && tsc && copyfiles -f src/lib/styles/* dist/styles"
41
41
  },
42
42
  "eslintConfig": {
package/src/App.tsx CHANGED
@@ -31,14 +31,24 @@ function App() {
31
31
  const [options, setOptions] = useState<{ value: string }[]>([]);
32
32
  const [spinning, setSpinning] = useState(false);
33
33
 
34
- function status_401_403() {
35
- alert('Log Out');
34
+
35
+ function onGenericServerError(status: number) {
36
+ alert(`Error, Status: ${status}`);
37
+ }
38
+
39
+ function status_401() {
40
+ alert('Log Out 401');
41
+ }
42
+
43
+ function status_403() {
44
+ alert('Log Out 403');
36
45
  }
37
46
 
38
47
  const textFetch = () => {
39
48
  const labels = { errorGeneric: 'Errore generiro', errorServerNotAvailable: 'No serviziooo', errorSessionExpired: 'Sessione scadurta' } as Utils.Fetch.Types.ILabels;
40
49
 
41
- const runner = new Utils.Fetch.FetchWrapper(null, labels, status_401_403);
50
+ const runner = new Utils.Fetch.FetchWrapper(null, labels, status_401, status_403);
51
+
42
52
  setSpinning(true);
43
53
  runner.get('https://my-json-server.typicode.com/typicode/demo/posts', null, null, false, false).then(response => {
44
54
  // @ts-ignore
@@ -53,6 +63,33 @@ function App() {
53
63
  console.log(errorMessage);
54
64
  });
55
65
 
66
+
67
+ // setSpinning(true);
68
+
69
+ // 401
70
+ // runner.get('https://gammafd1.northeurope.cloudapp.azure.com:9136/flowbot/CustomCode', null, null, false, false).then(response => {
71
+ // setSpinning(false);
72
+ // debugger;
73
+ // alert('OK');
74
+ // }).catch(errorMessage => {
75
+ // debugger;
76
+ // if (errorMessage && errorMessage.message)
77
+ // alert(errorMessage.message);
78
+ // setSpinning(false);
79
+ // });
80
+
81
+ // 400
82
+ // runner.delete('https://gammafd1.northeurope.cloudapp.azure.com:9126/flowbot/Dossier/24/Procedure/78', null, onGenericServerError, null, false, false).then(response => {
83
+ // setSpinning(false);
84
+ // debugger;
85
+ // alert('Ok');
86
+ // }).catch(errorMessage => {
87
+ // debugger;
88
+ // if (errorMessage && errorMessage.message)
89
+ // alert(errorMessage.message);
90
+ // setSpinning(false);
91
+ // });
92
+
56
93
  };
57
94
 
58
95
  const updateAppState = (name: string, value: object) => {
@@ -1,4 +1,5 @@
1
1
  export interface ILabels {
2
+ errorBadRequest: string,
2
3
  errorGeneric: string;
3
4
  errorServerNotAvailable: string;
4
5
  errorSessionExpired: string;
@@ -2,6 +2,7 @@ import * as Types from './Types';
2
2
 
3
3
  class Constants {
4
4
  static labels = {
5
+ errorBadRequest: 'Request is not in a valid format',
5
6
  errorGeneric: 'Sorry we have errors on the remote server',
6
7
  errorServerNotAvailable: 'Server not available',
7
8
  errorSessionExpired: 'Your session has expired, please login.',
@@ -11,11 +12,13 @@ class Constants {
11
12
  class FetchWrapper {
12
13
  apiVersion?: string;
13
14
  labels?: Types.ILabels;
14
- status_401_403?: () => void;
15
+ status_401?: () => void;
16
+ status_403?: () => void;
15
17
 
16
- constructor(apiVersion?: string, labels?: Types.ILabels, status_401_403?: () => void) {
18
+ constructor(apiVersion?: string, labels?: Types.ILabels, status_401?: () => void, status_403?: () => void) {
17
19
  this.apiVersion = apiVersion;
18
- this.status_401_403 = status_401_403;
20
+ this.status_401 = status_401;
21
+ this.status_403 = status_403;
19
22
 
20
23
  if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
21
24
  this.labels = labels;
@@ -23,23 +26,23 @@ class FetchWrapper {
23
26
  this.labels = Constants.labels;
24
27
  }
25
28
 
26
- get = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
27
- return this.generic('GET', url, token, params, isFile, isBlob);
29
+ get = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
30
+ return this.generic('GET', url, token, onGenericServerError, params, isFile, isBlob);
28
31
  }
29
32
 
30
- post = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false, additionalParams: Types.AdditionalParamsType[] = []) => {
31
- return this.generic('POST', url, token, params, isFile, isBlob, this.apiVersion, additionalParams);
33
+ post = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false, additionalParams: Types.AdditionalParamsType[] = []) => {
34
+ return this.generic('POST', url, token, onGenericServerError, params, isFile, isBlob, this.apiVersion, additionalParams);
32
35
  }
33
36
 
34
- put = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
35
- return this.generic('PUT', url, token, params, isFile, isBlob);
37
+ put = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
38
+ return this.generic('PUT', url, token, onGenericServerError, params, isFile, isBlob);
36
39
  }
37
40
 
38
- delete = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
39
- return this.generic('DELETE', url, token, params, isFile, isBlob);
41
+ delete = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
42
+ return this.generic('DELETE', url, token, onGenericServerError, params, isFile, isBlob);
40
43
  }
41
44
 
42
- generic = (method: string, url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false, version = this.apiVersion, additionalParams: Types.AdditionalParamsType[] = []) => {
45
+ generic = (method: string, url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false, version = this.apiVersion, additionalParams: Types.AdditionalParamsType[] = []) => {
43
46
  // Headers & Body
44
47
  let body: BodyInit;
45
48
  const headers = new Headers();
@@ -76,7 +79,8 @@ class FetchWrapper {
76
79
  } as RequestInit;
77
80
 
78
81
  const labels = this.labels;
79
- const status_401_403 = this.status_401_403;
82
+ const status_401 = this.status_401;
83
+ const status_403 = this.status_403;
80
84
 
81
85
  return fetch(url, requestInit)
82
86
  .then(response => {
@@ -95,15 +99,24 @@ class FetchWrapper {
95
99
  if (!error || error.message === 'Failed to fetch')
96
100
  throw new Error(labels.errorServerNotAvailable);
97
101
 
98
- // This is an error coming from then
99
- if (error.text) {
100
- if ((error.status === 401 || error.status === 403) && status_401_403) {
101
- status_401_403();
102
+ // This is an error coming from BE
103
+ if (error.status === 401 && status_401) {
104
+ status_401();
105
+ } else if (error.status === 403 && status_401) {
106
+ status_403();
107
+ } else if (error.status === 400 && onGenericServerError) {
108
+ onGenericServerError(error.status);
109
+ }
110
+
111
+ if (!error.text) {
112
+ if (error.status === 400) {
113
+ throw new Error(labels.errorBadRequest);
114
+ } else if (error.status === 401 || error.status === 403) {
102
115
  throw new Error(labels.errorSessionExpired);
103
116
  }
104
- else
105
- return error.text();
106
117
  }
118
+ else
119
+ return error.text();
107
120
 
108
121
  if (error.message && error.message !== '')
109
122
  throw error.message;
package/debug.log DELETED
@@ -1,2 +0,0 @@
1
- [1118/091940.733:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)
2
- [1118/100751.068:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)