@culturefy/shared 1.0.22 → 1.0.24
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.
- package/build/cjs/utils/response.js +36 -2
- package/build/cjs/utils/response.js.map +1 -1
- package/build/esm/utils/response.js +36 -2
- package/build/esm/utils/response.js.map +1 -1
- package/build/package.json +2 -2
- package/build/src/utils/response.js +32 -1
- package/build/src/utils/response.js.map +1 -1
- package/package.json +2 -2
- package/src/utils/response.ts +32 -1
|
@@ -3,14 +3,48 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.asyncHandler = asyncHandler;
|
|
5
5
|
exports.sendResponse = sendResponse;
|
|
6
|
-
|
|
6
|
+
var StatusCode = /*#__PURE__*/function (StatusCode) {
|
|
7
|
+
StatusCode["SUCCESS"] = "10000";
|
|
8
|
+
StatusCode["FAILURE"] = "10001";
|
|
9
|
+
StatusCode["RETRY"] = "10002";
|
|
10
|
+
StatusCode["INVALID_ACCESS_TOKEN"] = "10003";
|
|
11
|
+
return StatusCode;
|
|
12
|
+
}(StatusCode || {});
|
|
13
|
+
var ResponseStatus = /*#__PURE__*/function (ResponseStatus) {
|
|
14
|
+
ResponseStatus[ResponseStatus["SUCCESS"] = 200] = "SUCCESS";
|
|
15
|
+
ResponseStatus[ResponseStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
16
|
+
// FAILURE
|
|
17
|
+
ResponseStatus[ResponseStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
18
|
+
// INVALID_ACCESS_TOKEN
|
|
19
|
+
ResponseStatus[ResponseStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
20
|
+
// INVALID_ACCESS_TOKEN
|
|
21
|
+
ResponseStatus[ResponseStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
22
|
+
// FAILURE
|
|
23
|
+
ResponseStatus[ResponseStatus["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR"; // FAILURE
|
|
24
|
+
return ResponseStatus;
|
|
25
|
+
}(ResponseStatus || {}); // This function generates a standard response with a structured body: { status, message, data }
|
|
7
26
|
function sendResponse(statusCode, data = null, message = '', headers = {
|
|
8
27
|
'Content-Type': 'application/json'
|
|
9
28
|
}) {
|
|
29
|
+
let code = StatusCode.FAILURE;
|
|
30
|
+
switch (statusCode) {
|
|
31
|
+
case ResponseStatus.SUCCESS:
|
|
32
|
+
code = StatusCode.SUCCESS;
|
|
33
|
+
break;
|
|
34
|
+
case ResponseStatus.UNAUTHORIZED:
|
|
35
|
+
case ResponseStatus.FORBIDDEN:
|
|
36
|
+
code = StatusCode.INVALID_ACCESS_TOKEN;
|
|
37
|
+
break;
|
|
38
|
+
case ResponseStatus.BAD_REQUEST:
|
|
39
|
+
case ResponseStatus.NOT_FOUND:
|
|
40
|
+
case ResponseStatus.INTERNAL_ERROR:
|
|
41
|
+
code = StatusCode.FAILURE;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
10
44
|
return {
|
|
11
45
|
status: statusCode,
|
|
12
46
|
body: JSON.stringify({
|
|
13
|
-
status:
|
|
47
|
+
status: code,
|
|
14
48
|
message: message || (statusCode >= 200 && statusCode < 300 ? 'Success' : 'Error'),
|
|
15
49
|
data: data
|
|
16
50
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","names":["sendResponse","statusCode","data","message","headers","status","body","JSON","stringify","asyncHandler","handler","request","context","log","url","response","error","console"],"sources":["../../../src/utils/response.ts"],"sourcesContent":["import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';\n\n// This function generates a standard response with a structured body: { status, message, data }\nexport function sendResponse(\n statusCode: number,\n data: any = null,\n message: string = '',\n headers: Record<string, string> = { 'Content-Type': 'application/json' }\n): HttpResponseInit {\n return {\n status: statusCode,\n body: JSON.stringify({\n status:
|
|
1
|
+
{"version":3,"file":"response.js","names":["StatusCode","ResponseStatus","sendResponse","statusCode","data","message","headers","code","FAILURE","SUCCESS","UNAUTHORIZED","FORBIDDEN","INVALID_ACCESS_TOKEN","BAD_REQUEST","NOT_FOUND","INTERNAL_ERROR","status","body","JSON","stringify","asyncHandler","handler","request","context","log","url","response","error","console"],"sources":["../../../src/utils/response.ts"],"sourcesContent":["import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';\n\nenum StatusCode {\n SUCCESS = '10000',\n FAILURE = '10001',\n RETRY = '10002',\n INVALID_ACCESS_TOKEN = '10003',\n}\n\nenum ResponseStatus {\n SUCCESS = 200,\n BAD_REQUEST = 400, // FAILURE\n UNAUTHORIZED = 401, // INVALID_ACCESS_TOKEN\n FORBIDDEN = 403, // INVALID_ACCESS_TOKEN\n NOT_FOUND = 404, // FAILURE\n INTERNAL_ERROR = 500, // FAILURE\n}\n\n// This function generates a standard response with a structured body: { status, message, data }\nexport function sendResponse(\n statusCode: number,\n data: any = null,\n message: string = '',\n headers: Record<string, string> = { 'Content-Type': 'application/json' }\n): HttpResponseInit {\n let code = StatusCode.FAILURE\n switch (statusCode) {\n case ResponseStatus.SUCCESS:\n code = StatusCode.SUCCESS\n break\n case ResponseStatus.UNAUTHORIZED:\n case ResponseStatus.FORBIDDEN:\n code = StatusCode.INVALID_ACCESS_TOKEN\n break\n case ResponseStatus.BAD_REQUEST:\n case ResponseStatus.NOT_FOUND:\n case ResponseStatus.INTERNAL_ERROR:\n code = StatusCode.FAILURE\n break\n }\n return {\n status: statusCode,\n body: JSON.stringify({\n status: code,\n message: message || (statusCode >= 200 && statusCode < 300 ? 'Success' : 'Error'),\n data: data,\n }),\n headers: headers,\n };\n}\n\n// Centralized asyncHandler to catch all errors\nexport function asyncHandler(handler: Function) {\n return async (request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> => {\n try {\n context.log('Handling request:', request.url);\n const response = await handler(request, context); // Call the actual handler logic\n context.log('Response sent:', response.status);\n return response;\n } catch (error: any) {\n console.error('Error occurred:', error);\n context.error('Error occurred:', error);\n return sendResponse(500, null, error.message ? error.message : 'An unexpected error occurred');\n }\n };\n}"],"mappings":";;;;;IAEKA,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,EAAVA,UAAU;AAAA,IAOVC,cAAc,0BAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAEI;EAFlBA,cAAc,CAAdA,cAAc;EAGK;EAHnBA,cAAc,CAAdA,cAAc;EAIE;EAJhBA,cAAc,CAAdA,cAAc;EAKE;EALhBA,cAAc,CAAdA,cAAc,8CAMO;EAAA,OANrBA,cAAc;AAAA,EAAdA,cAAc,SASnB;AACO,SAASC,YAAYA,CACxBC,UAAkB,EAClBC,IAAS,GAAG,IAAI,EAChBC,OAAe,GAAG,EAAE,EACpBC,OAA+B,GAAG;EAAE,cAAc,EAAE;AAAmB,CAAC,EACxD;EAChB,IAAIC,IAAI,GAAGP,UAAU,CAACQ,OAAO;EAC7B,QAAQL,UAAU;IACd,KAAKF,cAAc,CAACQ,OAAO;MACvBF,IAAI,GAAGP,UAAU,CAACS,OAAO;MACzB;IACJ,KAAKR,cAAc,CAACS,YAAY;IAChC,KAAKT,cAAc,CAACU,SAAS;MACzBJ,IAAI,GAAGP,UAAU,CAACY,oBAAoB;MACtC;IACJ,KAAKX,cAAc,CAACY,WAAW;IAC/B,KAAKZ,cAAc,CAACa,SAAS;IAC7B,KAAKb,cAAc,CAACc,cAAc;MAC9BR,IAAI,GAAGP,UAAU,CAACQ,OAAO;MACzB;EACR;EACA,OAAO;IACHQ,MAAM,EAAEb,UAAU;IAClBc,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;MACjBH,MAAM,EAAET,IAAI;MACZF,OAAO,EAAEA,OAAO,KAAKF,UAAU,IAAI,GAAG,IAAIA,UAAU,GAAG,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC;MACjFC,IAAI,EAAEA;IACV,CAAC,CAAC;IACFE,OAAO,EAAEA;EACb,CAAC;AACL;;AAEA;AACO,SAASc,YAAYA,CAACC,OAAiB,EAAE;EAC5C,OAAO,OAAOC,OAAoB,EAAEC,OAA0B,KAAgC;IAC1F,IAAI;MACAA,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEF,OAAO,CAACG,GAAG,CAAC;MAC7C,MAAMC,QAAQ,GAAG,MAAML,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC,CAAC,CAAE;MACnDA,OAAO,CAACC,GAAG,CAAC,gBAAgB,EAAEE,QAAQ,CAACV,MAAM,CAAC;MAC9C,OAAOU,QAAQ;IACnB,CAAC,CAAC,OAAOC,KAAU,EAAE;MACjBC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACvCJ,OAAO,CAACI,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACvC,OAAOzB,YAAY,CAAC,GAAG,EAAE,IAAI,EAAEyB,KAAK,CAACtB,OAAO,GAAGsB,KAAK,CAACtB,OAAO,GAAG,8BAA8B,CAAC;IAClG;EACJ,CAAC;AACL","ignoreList":[]}
|
|
@@ -1,11 +1,45 @@
|
|
|
1
|
-
|
|
1
|
+
var StatusCode = /*#__PURE__*/function (StatusCode) {
|
|
2
|
+
StatusCode["SUCCESS"] = "10000";
|
|
3
|
+
StatusCode["FAILURE"] = "10001";
|
|
4
|
+
StatusCode["RETRY"] = "10002";
|
|
5
|
+
StatusCode["INVALID_ACCESS_TOKEN"] = "10003";
|
|
6
|
+
return StatusCode;
|
|
7
|
+
}(StatusCode || {});
|
|
8
|
+
var ResponseStatus = /*#__PURE__*/function (ResponseStatus) {
|
|
9
|
+
ResponseStatus[ResponseStatus["SUCCESS"] = 200] = "SUCCESS";
|
|
10
|
+
ResponseStatus[ResponseStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
11
|
+
// FAILURE
|
|
12
|
+
ResponseStatus[ResponseStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
13
|
+
// INVALID_ACCESS_TOKEN
|
|
14
|
+
ResponseStatus[ResponseStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
15
|
+
// INVALID_ACCESS_TOKEN
|
|
16
|
+
ResponseStatus[ResponseStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
17
|
+
// FAILURE
|
|
18
|
+
ResponseStatus[ResponseStatus["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR"; // FAILURE
|
|
19
|
+
return ResponseStatus;
|
|
20
|
+
}(ResponseStatus || {}); // This function generates a standard response with a structured body: { status, message, data }
|
|
2
21
|
export function sendResponse(statusCode, data = null, message = '', headers = {
|
|
3
22
|
'Content-Type': 'application/json'
|
|
4
23
|
}) {
|
|
24
|
+
let code = StatusCode.FAILURE;
|
|
25
|
+
switch (statusCode) {
|
|
26
|
+
case ResponseStatus.SUCCESS:
|
|
27
|
+
code = StatusCode.SUCCESS;
|
|
28
|
+
break;
|
|
29
|
+
case ResponseStatus.UNAUTHORIZED:
|
|
30
|
+
case ResponseStatus.FORBIDDEN:
|
|
31
|
+
code = StatusCode.INVALID_ACCESS_TOKEN;
|
|
32
|
+
break;
|
|
33
|
+
case ResponseStatus.BAD_REQUEST:
|
|
34
|
+
case ResponseStatus.NOT_FOUND:
|
|
35
|
+
case ResponseStatus.INTERNAL_ERROR:
|
|
36
|
+
code = StatusCode.FAILURE;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
5
39
|
return {
|
|
6
40
|
status: statusCode,
|
|
7
41
|
body: JSON.stringify({
|
|
8
|
-
status:
|
|
42
|
+
status: code,
|
|
9
43
|
message: message || (statusCode >= 200 && statusCode < 300 ? 'Success' : 'Error'),
|
|
10
44
|
data: data
|
|
11
45
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","names":["sendResponse","statusCode","data","message","headers","status","body","JSON","stringify","asyncHandler","handler","request","context","log","url","response","error","console"],"sources":["../../../src/utils/response.ts"],"sourcesContent":["import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';\n\n// This function generates a standard response with a structured body: { status, message, data }\nexport function sendResponse(\n statusCode: number,\n data: any = null,\n message: string = '',\n headers: Record<string, string> = { 'Content-Type': 'application/json' }\n): HttpResponseInit {\n return {\n status: statusCode,\n body: JSON.stringify({\n status:
|
|
1
|
+
{"version":3,"file":"response.js","names":["StatusCode","ResponseStatus","sendResponse","statusCode","data","message","headers","code","FAILURE","SUCCESS","UNAUTHORIZED","FORBIDDEN","INVALID_ACCESS_TOKEN","BAD_REQUEST","NOT_FOUND","INTERNAL_ERROR","status","body","JSON","stringify","asyncHandler","handler","request","context","log","url","response","error","console"],"sources":["../../../src/utils/response.ts"],"sourcesContent":["import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';\n\nenum StatusCode {\n SUCCESS = '10000',\n FAILURE = '10001',\n RETRY = '10002',\n INVALID_ACCESS_TOKEN = '10003',\n}\n\nenum ResponseStatus {\n SUCCESS = 200,\n BAD_REQUEST = 400, // FAILURE\n UNAUTHORIZED = 401, // INVALID_ACCESS_TOKEN\n FORBIDDEN = 403, // INVALID_ACCESS_TOKEN\n NOT_FOUND = 404, // FAILURE\n INTERNAL_ERROR = 500, // FAILURE\n}\n\n// This function generates a standard response with a structured body: { status, message, data }\nexport function sendResponse(\n statusCode: number,\n data: any = null,\n message: string = '',\n headers: Record<string, string> = { 'Content-Type': 'application/json' }\n): HttpResponseInit {\n let code = StatusCode.FAILURE\n switch (statusCode) {\n case ResponseStatus.SUCCESS:\n code = StatusCode.SUCCESS\n break\n case ResponseStatus.UNAUTHORIZED:\n case ResponseStatus.FORBIDDEN:\n code = StatusCode.INVALID_ACCESS_TOKEN\n break\n case ResponseStatus.BAD_REQUEST:\n case ResponseStatus.NOT_FOUND:\n case ResponseStatus.INTERNAL_ERROR:\n code = StatusCode.FAILURE\n break\n }\n return {\n status: statusCode,\n body: JSON.stringify({\n status: code,\n message: message || (statusCode >= 200 && statusCode < 300 ? 'Success' : 'Error'),\n data: data,\n }),\n headers: headers,\n };\n}\n\n// Centralized asyncHandler to catch all errors\nexport function asyncHandler(handler: Function) {\n return async (request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> => {\n try {\n context.log('Handling request:', request.url);\n const response = await handler(request, context); // Call the actual handler logic\n context.log('Response sent:', response.status);\n return response;\n } catch (error: any) {\n console.error('Error occurred:', error);\n context.error('Error occurred:', error);\n return sendResponse(500, null, error.message ? error.message : 'An unexpected error occurred');\n }\n };\n}"],"mappings":"IAEKA,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,EAAVA,UAAU;AAAA,IAOVC,cAAc,0BAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAEI;EAFlBA,cAAc,CAAdA,cAAc;EAGK;EAHnBA,cAAc,CAAdA,cAAc;EAIE;EAJhBA,cAAc,CAAdA,cAAc;EAKE;EALhBA,cAAc,CAAdA,cAAc,8CAMO;EAAA,OANrBA,cAAc;AAAA,EAAdA,cAAc,SASnB;AACA,OAAO,SAASC,YAAYA,CACxBC,UAAkB,EAClBC,IAAS,GAAG,IAAI,EAChBC,OAAe,GAAG,EAAE,EACpBC,OAA+B,GAAG;EAAE,cAAc,EAAE;AAAmB,CAAC,EACxD;EAChB,IAAIC,IAAI,GAAGP,UAAU,CAACQ,OAAO;EAC7B,QAAQL,UAAU;IACd,KAAKF,cAAc,CAACQ,OAAO;MACvBF,IAAI,GAAGP,UAAU,CAACS,OAAO;MACzB;IACJ,KAAKR,cAAc,CAACS,YAAY;IAChC,KAAKT,cAAc,CAACU,SAAS;MACzBJ,IAAI,GAAGP,UAAU,CAACY,oBAAoB;MACtC;IACJ,KAAKX,cAAc,CAACY,WAAW;IAC/B,KAAKZ,cAAc,CAACa,SAAS;IAC7B,KAAKb,cAAc,CAACc,cAAc;MAC9BR,IAAI,GAAGP,UAAU,CAACQ,OAAO;MACzB;EACR;EACA,OAAO;IACHQ,MAAM,EAAEb,UAAU;IAClBc,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;MACjBH,MAAM,EAAET,IAAI;MACZF,OAAO,EAAEA,OAAO,KAAKF,UAAU,IAAI,GAAG,IAAIA,UAAU,GAAG,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC;MACjFC,IAAI,EAAEA;IACV,CAAC,CAAC;IACFE,OAAO,EAAEA;EACb,CAAC;AACL;;AAEA;AACA,OAAO,SAASc,YAAYA,CAACC,OAAiB,EAAE;EAC5C,OAAO,OAAOC,OAAoB,EAAEC,OAA0B,KAAgC;IAC1F,IAAI;MACAA,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEF,OAAO,CAACG,GAAG,CAAC;MAC7C,MAAMC,QAAQ,GAAG,MAAML,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC,CAAC,CAAE;MACnDA,OAAO,CAACC,GAAG,CAAC,gBAAgB,EAAEE,QAAQ,CAACV,MAAM,CAAC;MAC9C,OAAOU,QAAQ;IACnB,CAAC,CAAC,OAAOC,KAAU,EAAE;MACjBC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACvCJ,OAAO,CAACI,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACvC,OAAOzB,YAAY,CAAC,GAAG,EAAE,IAAI,EAAEyB,KAAK,CAACtB,OAAO,GAAGsB,KAAK,CAACtB,OAAO,GAAG,8BAA8B,CAAC;IAClG;EACJ,CAAC;AACL","ignoreList":[]}
|
package/build/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@culturefy/shared",
|
|
3
3
|
"description": "Shared utilities for culturefy serverless services",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.24",
|
|
5
5
|
"main": "build/cjs/index.js",
|
|
6
6
|
"module": "build/esm/index.js",
|
|
7
7
|
"types": "build/src/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"build:cjs": "NODE_ENV=production BABEL_ENV=cjs babel src --presets=./scripts/babel-preset.js --extensions .ts,.tsx --ignore src/**/*.specs.tsx --out-dir build/cjs --source-maps",
|
|
15
15
|
"build:esm": "NODE_ENV=production BABEL_ENV=esm babel src --presets=./scripts/babel-preset.js --extensions .ts,.tsx --ignore src/**/*.specs.tsx --out-dir build/esm --source-maps",
|
|
16
16
|
"prepublishOnly": "npm run build",
|
|
17
|
-
"publish": "npm run build && npm publish"
|
|
17
|
+
"publish": "npm install && npm run build && npm publish"
|
|
18
18
|
},
|
|
19
19
|
"publishConfig": {
|
|
20
20
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -3,12 +3,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.sendResponse = sendResponse;
|
|
4
4
|
exports.asyncHandler = asyncHandler;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
|
+
var StatusCode;
|
|
7
|
+
(function (StatusCode) {
|
|
8
|
+
StatusCode["SUCCESS"] = "10000";
|
|
9
|
+
StatusCode["FAILURE"] = "10001";
|
|
10
|
+
StatusCode["RETRY"] = "10002";
|
|
11
|
+
StatusCode["INVALID_ACCESS_TOKEN"] = "10003";
|
|
12
|
+
})(StatusCode || (StatusCode = {}));
|
|
13
|
+
var ResponseStatus;
|
|
14
|
+
(function (ResponseStatus) {
|
|
15
|
+
ResponseStatus[ResponseStatus["SUCCESS"] = 200] = "SUCCESS";
|
|
16
|
+
ResponseStatus[ResponseStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
17
|
+
ResponseStatus[ResponseStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
18
|
+
ResponseStatus[ResponseStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
19
|
+
ResponseStatus[ResponseStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
20
|
+
ResponseStatus[ResponseStatus["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
21
|
+
})(ResponseStatus || (ResponseStatus = {}));
|
|
6
22
|
// This function generates a standard response with a structured body: { status, message, data }
|
|
7
23
|
function sendResponse(statusCode, data = null, message = '', headers = { 'Content-Type': 'application/json' }) {
|
|
24
|
+
let code = StatusCode.FAILURE;
|
|
25
|
+
switch (statusCode) {
|
|
26
|
+
case ResponseStatus.SUCCESS:
|
|
27
|
+
code = StatusCode.SUCCESS;
|
|
28
|
+
break;
|
|
29
|
+
case ResponseStatus.UNAUTHORIZED:
|
|
30
|
+
case ResponseStatus.FORBIDDEN:
|
|
31
|
+
code = StatusCode.INVALID_ACCESS_TOKEN;
|
|
32
|
+
break;
|
|
33
|
+
case ResponseStatus.BAD_REQUEST:
|
|
34
|
+
case ResponseStatus.NOT_FOUND:
|
|
35
|
+
case ResponseStatus.INTERNAL_ERROR:
|
|
36
|
+
code = StatusCode.FAILURE;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
8
39
|
return {
|
|
9
40
|
status: statusCode,
|
|
10
41
|
body: JSON.stringify({
|
|
11
|
-
status:
|
|
42
|
+
status: code,
|
|
12
43
|
message: message || (statusCode >= 200 && statusCode < 300 ? 'Success' : 'Error'),
|
|
13
44
|
data: data,
|
|
14
45
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/response.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/response.ts"],"names":[],"mappings":";;AAmBA,oCA8BC;AAGD,oCAaC;;AA/DD,IAAK,UAKJ;AALD,WAAK,UAAU;IACX,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,4CAA8B,CAAA;AAClC,CAAC,EALI,UAAU,KAAV,UAAU,QAKd;AAED,IAAK,cAOJ;AAPD,WAAK,cAAc;IACf,2DAAa,CAAA;IACb,mEAAiB,CAAA;IACjB,qEAAkB,CAAA;IAClB,+DAAe,CAAA;IACf,+DAAe,CAAA;IACf,yEAAoB,CAAA;AACxB,CAAC,EAPI,cAAc,KAAd,cAAc,QAOlB;AAED,gGAAgG;AAChG,SAAgB,YAAY,CACxB,UAAkB,EAClB,OAAY,IAAI,EAChB,UAAkB,EAAE,EACpB,UAAkC,EAAE,cAAc,EAAE,kBAAkB,EAAE;IAExE,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,CAAA;IAC7B,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,cAAc,CAAC,OAAO;YACvB,IAAI,GAAG,UAAU,CAAC,OAAO,CAAA;YACzB,MAAK;QACT,KAAK,cAAc,CAAC,YAAY,CAAC;QACjC,KAAK,cAAc,CAAC,SAAS;YACzB,IAAI,GAAG,UAAU,CAAC,oBAAoB,CAAA;YACtC,MAAK;QACT,KAAK,cAAc,CAAC,WAAW,CAAC;QAChC,KAAK,cAAc,CAAC,SAAS,CAAC;QAC9B,KAAK,cAAc,CAAC,cAAc;YAC9B,IAAI,GAAG,UAAU,CAAC,OAAO,CAAA;YACzB,MAAK;IACb,CAAC;IACD,OAAO;QACH,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACjB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YACjF,IAAI,EAAE,IAAI;SACb,CAAC;QACF,OAAO,EAAE,OAAO;KACnB,CAAC;AACN,CAAC;AAED,+CAA+C;AAC/C,SAAgB,YAAY,CAAC,OAAiB;IAC1C,OAAO,CAAO,OAAoB,EAAE,OAA0B,EAA6B,EAAE;QACzF,IAAI,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAE,gCAAgC;YACnF,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,QAAQ,CAAC;QACpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;QACnG,CAAC;IACL,CAAC,CAAA,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@culturefy/shared",
|
|
3
3
|
"description": "Shared utilities for culturefy serverless services",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.24",
|
|
5
5
|
"main": "build/cjs/index.js",
|
|
6
6
|
"module": "build/esm/index.js",
|
|
7
7
|
"types": "build/src/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"build:cjs": "NODE_ENV=production BABEL_ENV=cjs babel src --presets=./scripts/babel-preset.js --extensions .ts,.tsx --ignore src/**/*.specs.tsx --out-dir build/cjs --source-maps",
|
|
15
15
|
"build:esm": "NODE_ENV=production BABEL_ENV=esm babel src --presets=./scripts/babel-preset.js --extensions .ts,.tsx --ignore src/**/*.specs.tsx --out-dir build/esm --source-maps",
|
|
16
16
|
"prepublishOnly": "npm run build",
|
|
17
|
-
"publish": "npm run build && npm publish"
|
|
17
|
+
"publish": "npm install && npm run build && npm publish"
|
|
18
18
|
},
|
|
19
19
|
"publishConfig": {
|
|
20
20
|
"registry": "https://registry.npmjs.org/",
|
package/src/utils/response.ts
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';
|
|
2
2
|
|
|
3
|
+
enum StatusCode {
|
|
4
|
+
SUCCESS = '10000',
|
|
5
|
+
FAILURE = '10001',
|
|
6
|
+
RETRY = '10002',
|
|
7
|
+
INVALID_ACCESS_TOKEN = '10003',
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
enum ResponseStatus {
|
|
11
|
+
SUCCESS = 200,
|
|
12
|
+
BAD_REQUEST = 400, // FAILURE
|
|
13
|
+
UNAUTHORIZED = 401, // INVALID_ACCESS_TOKEN
|
|
14
|
+
FORBIDDEN = 403, // INVALID_ACCESS_TOKEN
|
|
15
|
+
NOT_FOUND = 404, // FAILURE
|
|
16
|
+
INTERNAL_ERROR = 500, // FAILURE
|
|
17
|
+
}
|
|
18
|
+
|
|
3
19
|
// This function generates a standard response with a structured body: { status, message, data }
|
|
4
20
|
export function sendResponse(
|
|
5
21
|
statusCode: number,
|
|
@@ -7,10 +23,25 @@ export function sendResponse(
|
|
|
7
23
|
message: string = '',
|
|
8
24
|
headers: Record<string, string> = { 'Content-Type': 'application/json' }
|
|
9
25
|
): HttpResponseInit {
|
|
26
|
+
let code = StatusCode.FAILURE
|
|
27
|
+
switch (statusCode) {
|
|
28
|
+
case ResponseStatus.SUCCESS:
|
|
29
|
+
code = StatusCode.SUCCESS
|
|
30
|
+
break
|
|
31
|
+
case ResponseStatus.UNAUTHORIZED:
|
|
32
|
+
case ResponseStatus.FORBIDDEN:
|
|
33
|
+
code = StatusCode.INVALID_ACCESS_TOKEN
|
|
34
|
+
break
|
|
35
|
+
case ResponseStatus.BAD_REQUEST:
|
|
36
|
+
case ResponseStatus.NOT_FOUND:
|
|
37
|
+
case ResponseStatus.INTERNAL_ERROR:
|
|
38
|
+
code = StatusCode.FAILURE
|
|
39
|
+
break
|
|
40
|
+
}
|
|
10
41
|
return {
|
|
11
42
|
status: statusCode,
|
|
12
43
|
body: JSON.stringify({
|
|
13
|
-
status:
|
|
44
|
+
status: code,
|
|
14
45
|
message: message || (statusCode >= 200 && statusCode < 300 ? 'Success' : 'Error'),
|
|
15
46
|
data: data,
|
|
16
47
|
}),
|