Introduction
This document describes how to construct Error codes for all operations?
Background
Jira Issues
https://project-sunbird.atlassian.net/browse/SB-21578
Examples Of Error code
PFT_CCRT10 >> PBK_CCRT10 >> DMW_CCRT10 >> NBB_CCRT10 TraceId: 1234 Error happened at NodeBB end. NBB_CCRT10 << NBB_CCRT10 << NBB_CCRT10 << NBB_CCRT10 ===> Servies: Discussion Middleware service -> DMW NodeBB Sercie -> NBB ===> Operations: Category create - CCRT Topic create - TCRT Group create - GCRT Usr create - UCRT ===> ERROR CODES: 01 - Category creation failed because of reason 1? 02 - Category create failed because of reason 2? 03 - Category update failed because of reason 1? 04 - Category update failed because of reason 2? ... DMW_CCRT01 NBB_GCRT{error_code}
Problem Statement:
How to assign specific error code to api?
Solution:
API | Unique Operation Name | Operation Name | Error Number | Error Description | Error Code |
FORUM API's | |||||
/forum/v2/read | FRED | DMW_FRED | 01 | Forum read failed because of nodebb-plugin-create-forum plugin not enabled. | DMW_FRED01 |
/forum/v2/read | FRED | DMW_FRED | 02 | Forum read failed because of request payload issue | DMW_FRED02 |
/forum/v2/read | FRED | DMW_FRED | 03 | Forum read failed | DMW_FRED03 |
/forum/v2/create | FCRT | DMW_FCRT | 04 | Forum create failed because nodebb-plugin-create-forum not enabled. | DMW_FCRT04 |
/forum/v2/create | DMW_FCRT | 05 | Forum create failed because of request payload issue. | DMW_FCRT05 | |
/forum/v2/create | DMW_FCRT | 06 | Forum create failed | DMW_FCRT06 | |
/forum/v2/remove | FREM | DMW_FREM | 07 | Forum remove failed because nodebb-plugin-create-forum not enabled. | DMW_FREM07 |
/forum/v2/remove | DMW_FREM | 08 | Forum remove failed | DMW_FREM08 | |
/forum/v2/remove | DMW_FREM | 09 | Forum remove failed because of request pay is incorrect | DMW_FREM09 | |
Tags API | |||||
/tags | TRED | DMW_TRED | 01 | Tags read failed | DMW_TRED01 |
/tags/list | TLST | DMW_TLST | 02 | Tags list read failed | DMW_TLST02 |
/tags/:tag | TRDIS | DMW_TRDIS | 03 | Tag related discussion read failed | DMW_TRDIS03 |
USER DETAILS API's | |||||
/user/:userslug | URED | DMW_URED | 01 | User details read failed | DMW_URED01 |
/user/:userslug | DMW_URED | 02 | Users details read failed because of user not exists | DMW_URED02 | |
/user/:userslug/upvoted | UUVR | DMW_URED | 03 | User up vote post details read failed | DMW_UUVR03 |
/user/:userslug/upvoted | DMW_URED | 04 | User up vote post details read failed because of user not exists | DMW_UUVR04 | |
/user/:userslug/downvoted | UDVR | DMW_URED | 05 | User down vote post details read failed | DMW_UDVR05 |
/user/:userslug/downvoted | DMW_URED | 06 | User down vote post details read failed because of user not exists. | DMW_UDVR06 | |
/user/:userslug/bookmarks | UBMR | DMW_URED | 07 | User saved post details read failed | DMW_UBMR07 |
/user/:userslug/bookmarks | DMW_URED | 08 | User saved post details read failed because of user not exists | DMW_UBMR08 | |
/user/v1/create | UCRT | DMW_UCRT | 09 | Create user failed | DMW_UCRT09 |
/user/v1/create | DMW_UCRT | 10 | Create user failed because of nodebb-plugin-sunbird-oidc plugin not enable | DMW_UCRT10 | |
CATEGORY API's | |||||
/category/:category_id/:slug | CDTL | DMW_CRED | 01 | Category details read failed. | DMW_CDTL01 |
/category/:category_id/:slug | DMW_CRED | 02 | Category details read failed because of category id not exists. | DMW_CDTL02 | |
/category/:cid | CRED | DMW_CRED | 03 | Category details read by cid failed | DMW_CRED03 |
/category/:cid | DMW_CRED | 04 | Category details read by cid failed because of cid not exists. | DMW_CRED04 | |
/categories | CLST | DMW_CRED | 05 | Access list of categories failed. | DMW_CLST05 |
/v2/categories | CCRT | DMW_CCRT | 06 | Create category failed | DMW_CCRT06 |
/v2/categories | DMW_CCRT | 07 | Create category failed because of nodedd-plugin-write-api not enable. | DMW_CCRT07 | |
/v2/categories | DMW_CCRT | 08 | Create category failed because of you are not authorized | DMW_CCRT08 | |
/v2/categories | DMW_CCRT | 09 | Create category failed because of request payload is incorrect. | DMW_CCRT09 | |
/v2/categories/:cid(PUT) | CUDT | DMW_CUDT | 10 | Update category failed | DMW_CUDT10 |
/v2/categories/:cid(PUT) | DMW_CUDT | 11 | Update category failed because of nodedd-plugin-write-api not enable or cid not exists. | DMW_CUDT11 | |
/v2/categories/:cid(PUT) | DMW_CUDT | 12 | Update category failed because of you are not authorized | DMW_CUDT12 | |
/v2/categories/:cid(PUT) | DMW_CUDT | 13 | Update category failed because of request payload is incorrect. | DMW_CUDT13 | |
/v2/categories/:cid(DELETE) | CDEL | DMW_CDEL | 14 | Delete category failed | DMW_CDEL14 |
/v2/categories/:cid(DELETE) | DMW_CDEL | 15 | Delete category failed because of nodedd-plugin-write-api not enable or cid not exists. | DMW_CDEL15 | |
/v2/categories/:cid(DELETE) | 16 | Delete category failed because of you are not authorized | DMW_CDEL16 | ||
/category/list | CLST | DMW_CLST | 17 | Category list api failed | DMW_CLST17 |
/category/list | CLST | DMW_CLST | 18 | Category id not found, Use correct cid. | DMW_CLST18 |
TOPICS API's | |||||
/unread | TUNR | DMW_TRED | 01 | Access unread topics failed | DMW_TUNR01 |
/recent | TRCT | DMW_TRED | 02 | Access recent topics failed. | DMW_TRCT02 |
/topic/:topic_id/:slug | TDTL | DMW_TRED | 03 | Access topic details failed | DMW_TDTL03 |
/topic/:topic_id/:slug | DMW_TRED | 04 | Access topic details failed because of topic id is not exists | DMW_TDTL04 | |
/v2/topics | TCRT | DMW_TCRT | 05 | Create topic failed | DMW_TCRT05 |
/v2/topics | DMW_TCRT | 06 | Create topic failed because of nodebb-plugin-write-api plugin not enabled. | DMW_TCRT06 | |
/v2/topics | DMW_TCRT | 07 | Create topic failed because of you are not authorized. | DMW_TCRT07 | |
/v2/topics | DMW_TCRT | 08 | Create topic failed because of request payload is incorrect. | DMW_TCRT08 | |
/v2/topics/:tid(POST) | RCRT | DMW_RCRT | 09 | Add reply failed | DMW_RCRT09 |
/v2/topics/:tid(POST) | DMW_RCRT | 10 | Add reply failed because f nodebb-plugin-write-api is not enabled or tid not exists | DMW_RCRT10 | |
/v2/topics/:tid(POST) | DMW_RCRT | 11 | Add reply failed because you are not authorized | DMW_RCRT11 | |
/v2/topics/:tid(POST) | DMW_RCRT | 12 | Add reply failed because of request payload is incorrect. | DMW_RCRT12 | |
/v2/topics/:tid(PUT) | TUDT | DMW_TUDT | 13 | Update topics/reply failed | DMW_TUDT13 |
/v2/topics/:tid(PUT) | DMW_TUDT | 14 | Update topics/reply failed because of nodebb-plugin-write-api is not enabled or tid not exists. | DMW_TUDT14 | |
/v2/topics/:tid(PUT) | DMW_TUDT | 15 | Update topics/reply failed because of you are not authorized | DMW_TUDT15 | |
/v2/topics/:tid(PUT) | DMW_TUDT | 16 | Update topics/reply failed because of request payload is incorrect. | DMW_TUDT16 | |
/v2/topics/:tid(DELETE) | TDEL | DMW_TDEL | 17 | Delete topic/reply failed | DMW_TDEL17 |
/v2/topics/:tid(DELETE) | DMW_TDEL | 18 | Delete topic/reply failed because of nodebb-plugin-write-api is not enabled or tid not exists | DMW_TDEL18 | |
/v2/topics/:tid(DELETE) | DMW_TDEL | 19 | Delete topic/reply failed because of you are not authorized | DMW_TDEL19 | |
/v2/topics/:tid(DELETE) | DMW_TDEL | 20 | Delete topic/reply failed because of tid is not exists. | DMW_TDEL20 | |
POST API's | |||||
/post/pid/:pid | PRED | DWM_PRED | 01 | Access post details failed | DWM_PRED01 |
/post/pid/:pid | DWM_PRED | 02 | Access post details failed because of pid is not exists | DWM_PRED02 | |
/v2/posts/:pid(POST) | PCRT | DMW_PCRT | 03 | Create post failed | DMW_PCRT03 |
/v2/posts/:pid(POST) | DMW_PCRT | 04 | Create post failed because of nodebb-plugin-write-api is not enabled or pid not exists | DMW_PCRT04 | |
/v2/posts/:pid(POST) | DMW_PCRT | 05 | Create post failed because of you are not authorized | DMW_PCRT05 | |
/v2/posts/:pid(POST) | DMW_PCRT | 06 | Create post failed because of request payload is incorrect | DMW_PCRT06 | |
/v2/posts/:pid(DELETE) | PDEL | DWM_PDEL | 07 | Delete post failed | DWM_PDEL07 |
/v2/posts/:pid(DELETE) | DWM_PDEL | 08 | Delete post failed because of nodebb-plugin-write-api is not enabled or pid not exists | DWM_PDEL08 | |
/v2/posts/:pid(DELETE) | DWM_PDEL | 09 | Delete post failed because of you are not authorized | DWM_PDEL09 | |
/v2/posts/:pid(DELETE) | DWM_PDEL | 10 | Delete post failed because of pid is not exists | DWM_PDEL10 | |
/v2/posts/:pid/vote(POST) | PVOT | DMW_PCRT | 11 | Adding vote to a post failed | DMW_PVOT11 |
/v2/posts/:pid/vote(POST) | DMW_PCRT | 12 | Adding vote to a post failed because of nodebb-plugin-write-api is not enabled or pid not exists | DMW_PVOT12 | |
/v2/posts/:pid/vote(POST) | DMW_PCRT | 13 | Adding vote to a post failed because of you are not authorized | DMW_PVOT13 | |
/v2/posts/:pid/vote(POST) | DMW_PCRT | 14 | Adding vote to a post failed because of request payload is incorrect | DMW_PVOT14 | |
/v2/posts/:pid/vote(DELETE) | PVDL | DMW_PCRT | 15 | Deleting vote failed | DMW_PVDL15 |
/v2/posts/:pid/vote(DELETE) | DMW_PCRT | 16 | Deleting vote failed because of nodebb-plugin-write-api is not enabled or pid not exists | DMW_PVDL16 | |
/v2/posts/:pid/vote(DELETE) | DMW_PCRT | 17 | Deleting vote failed because of you are not authorized | DMW_PVDL17 | |
/v2/posts/:pid/vote(DELETE) | DMW_PCRT | 18 | Deleting vote failed because of pid is incorrect | DMW_PVDL18 | |
/v2/posts/:pid/bookmark(POST) | PSVE | DMW_PCRT | 19 | Bookmark post failed | DMW_PSVE19 |
/v2/posts/:pid/bookmark(POST) | PSVE | DMW_PCRT | 20 | Bookmark post failed because of nodebb-plugin-write-api not enabled or pid not exists | DMW_PSVE20 |
/v2/posts/:pid/bookmark(POST) | PSVE | DMW_PCRT | 21 | Bookmark post failed because of you are not authorized | DMW_PSVE21 |
/v2/posts/:pid/bookmark(POST) | PSVE | DMW_PCRT | 22 | Bookmark post failed because of pid is incorrect | DMW_PSVE22 |
/v2/posts/:pid/bookmark(DELETE) | PUSVE | DMW_PCRT | 23 | Delete bookmark failed | DMW_PUSVE23 |
/v2/posts/:pid/bookmark(DELETE) | PUSVE | DMW_PCRT | 24 | Delete bookmark failed because of nodebb-plugin-write-api is not enabled or pid incorrect. | DMW_PUSVE24 |
/v2/posts/:pid/bookmark(DELETE) | PUSVE | DMW_PCRT | 25 | Delete bookmark failed because of you are not authorized | DMW_PUSVE25 |
/v2/posts/:pid/bookmark(DELETE) | PUSVE | DMW_PCRT | 26 | Delete bookmark failed because of pid not exists | DMW_PUSVE26 |
Error Code Json:
{ "/discussion/forum/v2/read": { "post": { "endPoint": "/discussion/forum/v2/read", "key": "DiscussionForumRead", "errorObject": { "err_404": { "errMsg": "Forum read failed because of nodebb-plugin-create-forum plugin not enabled.", "err": "DMW_FRED01" }, "err_400": { "errMsg": "Forum read failed because of request payload issue", "err": "DMW_FRED02" }, "err_500": { "errMsg": "Forum read failed", "err": "DMW_FRED03" } } } }, "/discussion/forum/v2/create": { "post": { "endPoint": "/discussion/forum/v2/create", "key": "DiscussionForumCreate", "errorObject": { "err_404": { "errMsg": "Forum create failed because nodebb-plugin-create-forum not enabled", "err": "DMW_FCRT04" }, "err_400": { "errMsg": "Forum create failed because of request payload issue.", "err": "DMW_FCRT05" }, "err_500": { "errMsg": "Forum create failed", "err": "DMW_FCRT06" } } } }, "/discussion/forum/v2/remove": { "post": { "endPoint": "/discussion/forum/v2/remove", "key": "DiscussionForumRemove", "errorObject": { "err_404": { "errMsg": "Forum remove failed because nodebb-plugin-create-forum not enabled.", "err": "DMW_FREM07" }, "err_400": { "errMsg": "Forum remove failed because of request pay is incorrect", "err": "DMW_FREM09" }, "err_500": { "errMsg": "Forum remove failed", "err": "DMW_FREM08" } } } }, "/discussion/tags": { "get": { "endPoint": "/discussion/tags", "key": "DiscussionForumTagsList", "errorObject": { "err_500": { "errMsg": "Tags read failed", "err": "DMW_TRED01" } } } }, "/discussion/user/:userslug": { "get": { "endPoint": "/discussion/user/:userslug", "key": "DiscussionForumUserDetails", "errorObject": { "err_500": { "errMsg": "Tags read failed", "err": "DMW_URED01" }, "err_404": { "errMsg": "Users details read failed because of user not exists", "err": "DMW_URED02" } } } }, "/discussion/user/:userslug/upvoted": { "get": { "endPoint": "/discussion/user/:userslug/upvoted", "key": "DiscussionForumUserUpvoteDetails", "errorObject": { "err_500": { "errMsg": "User up vote post details read failed ", "err": "DMW_UUVR03" }, "err_404": { "errMsg": "User up vote post details read failed because of user not exists", "err": "DMW_UUVR04" } } } }, "/discussion/user/:userslug/downvoted": { "get": { "endPoint": "/discussion/user/:userslug/downvoted", "key": "DiscussionForumUserDownvoteDetails", "errorObject": { "err_500": { "errMsg": "User down vote post details read failed", "err": "DMW_UDVR05" }, "err_404": { "errMsg": "User down vote post details read failed because of user not exists.", "err": "DMW_UDVR06" } } } }, "/discussion/user/:userslug/bookmarks": { "get": { "endPoint": "/discussion/user/:userslug/bookmarks", "key": "DiscussionForumUserBookmarksDetails", "errorObject": { "err_500": { "errMsg": "User saved post details read failed", "err": "DMW_UBMR07" }, "err_404": { "errMsg": "User saved post details read failed because of user not exists", "err": "DMW_UBMR08" } } } }, "/discussion/user/v1/create": { "post": { "endPoint": "/discussion/user/v1/create", "key": "DiscussionForumCreate", "errorObject": { "err_500": { "errMsg": "Create user failed", "err": "DMW_UCRT09" }, "err_404": { "errMsg": "Create user failed because of nodebb-plugin-sunbird-oidc plugin not enable", "err": "DMW_UCRT10" } } } }, "/discussion/category/:category_id/:slug": { "get": { "endPoint": "/discussion/category/:category_id/:slug", "key": "DiscussionForumCategoryDetails", "errorObject": { "err_500": { "errMsg": "Category details read failed", "err": "DMW_CDTL01" }, "err_404": { "errMsg": "Category details read failed because of category id not exists.", "err": "DMW_CDTL02" } } } }, "/discussion/category/:cid": { "get": { "endPoint": "/discussion/category/:cid", "key": "DiscussionForumCategoryDetailsByCid", "errorObject": { "err_500": { "errMsg": "Category details read by cid failed", "err": "DMW_CRED03" }, "err_404": { "errMsg": "Category details read by cid failed because of cid not exists.", "err": "DMW_CRED04" } } } }, "/discussion/categories": { "get": { "endPoint": "/discussion/categories", "key": "DiscussionForumCategoryList", "errorObject": { "err_500": { "errMsg": "Access list of categories failed.", "err": "DMW_CLST05" } } } }, "/discussion/v2/categories": { "get": { "endPoint": "/discussion/v2/categories", "key": "DiscussionForumCreateCategory", "errorObject": { "err_500": { "errMsg": "Create category failed", "err": "DMW_CCRT06" }, "err_404": { "errMsg": "Create category failed because of nodedd-plugin-write-api not enable.", "err": "DMW_CCRT07" }, "err_401": { "errMsg": "Create category failed because of you are not authorized", "err": "DMW_CCRT08" }, "err_400": { "errMsg": "Create category failed because of request payload is incorrect.", "err": "DMW_CCRT09" } } } }, "/discussion/v2/categories/:cid": { "post": { "endPoint": "/discussion/v2/categories/:cid", "key": "DiscussionForumUpdateCategory", "errorObject": { "err_500": { "errMsg": "Update category failed", "err": "DMW_CUDT10" }, "err_404": { "errMsg": "Update category failed because of nodedd-plugin-write-api not enable or cid not exists.", "err": "DMW_CUDT11" }, "err_401": { "errMsg": "Update category failed because of you are not authorized", "err": "DMW_CUDT12" }, "err_400": { "errMsg": "Update category failed because of request payload is incorrect.", "err": "DMW_CUDT13" } }, "delete": { "endPoint": "/discussion/v2/categories/:cid", "key": "DiscussionForumDeleteCategory", "errorObject": { "err_500": { "errMsg": "Delete category failed", "err": "DMW_CDEL14" }, "err_404": { "errMsg": "Delete category failed because of nodedd-plugin-write-api not enable or cid not exists.", "err": "DMW_CDEL15" }, "err_401": { "errMsg": "Delete category failed because of you are not authorized", "err": "DMW_CDEL16" } } } }, "/discussion/unread": { "get": { "endPoint": "/discussion/unread", "key": "DiscussionForumUnreadTopics", "errorObject": { "err_500": { "errMsg": "Access unread topics failed", "err": "DMW_TUNR01" } } } }, "/discussion/recent": { "get": { "endPoint": "/discussion/recent", "key": "DiscussionForumRecentopics", "errorObject": { "err_500": { "errMsg": "Access recent topics failed.", "err": "DMW_TRCT02" } } } }, "/discussion/topic/:topic_id/:slug": { "get": { "endPoint": "/discussion/topic/:topic_id/:slug", "key": "DiscussionForumTopicDetails", "errorObject": { "err_500": { "errMsg": "Access topic details failed", "err": "DMW_TDTL03" }, "err_404": { "errMsg": "Access topic details failed because of topic id is not exists", "err": "DMW_TDTL04" } } } }, "/discussion/v2/topics": { "post": { "endPoint": "/discussion/v2/topics", "key": "DiscussionForumCreateTopic", "errorObject": { "err_500": { "errMsg": "Create topic failed", "err": "DMW_TCRT05" }, "err_404": { "errMsg": "Create topic failed because of nodebb-plugin-write-api plugin not enabled.", "err": "DMW_TCRT06" }, "err_401": { "errMsg": "Create topic failed because of you are not authorized.", "err": "DMW_TCRT07" }, "err_400": { "errMsg": "Create topic failed because of request payload is incorrect.", "err": "DMW_TCRT08" } } } }, "/discussion/v2/topics/:tid": { "post": { "endPoint": "/discussion/v2/topics/:tid", "key": "DiscussionForumAddReplyToTopic", "errorObject": { "err_500": { "errMsg": "Add reply failed", "err": "DMW_RCRT09" }, "err_404": { "errMsg": "Add reply failed because f nodebb-plugin-write-api is not enabled or tid not exists", "err": "DMW_RCRT10" }, "err_401": { "errMsg": "Add reply failed because you are not authorized", "err": "DMW_RCRT11" }, "err_400": { "errMsg": "Add reply failed because of request payload is incorrect.", "err": "DMW_RCRT12" } } }, "put": { "endPoint": "/discussion/v2/topics/:tid", "key": "DiscussionForumUpdateTopic", "errorObject": { "err_500": { "errMsg": "Update topics/reply failed", "err": "DMW_TUDT13" }, "err_404": { "errMsg": "Update topics/reply failed because of nodebb-plugin-write-api is not enabled or tid not exists.", "err": "DMW_TUDT14" }, "err_401": { "errMsg": "Update topics/reply failed because of you are not authorized", "err": "DMW_TUDT15" }, "err_400": { "errMsg": "Update topics/reply failed because of request payload is incorrect", "err": "DMW_TUDT16" } } }, "delete": { "endPoint": "/discussion/v2/topics/:tid", "key": "DiscussionForumDeleteTopic", "errorObject": { "err_500": { "errMsg": "Delete topic/reply failed", "err": "DMW_TDEL17" }, "err_404": { "errMsg": "Delete topic/reply failed because of nodebb-plugin-write-api is not enabled or tid not exists", "err": "DMW_TDEL18" }, "err_401": { "errMsg": "Delete topic/reply failed because of you are not authorized", "err": "DMW_TDEL19" }, "err_400": { "errMsg": "Delete topic/reply failed because of tid is not exists", "err": "DMW_TDEL20" } } } }, "/discussion/post/pid/:pid": { "get": { "endPoint": "/discussion/post/pid/:pid", "key": "DiscussionForumPostDetails", "errorObject": { "err_500": { "errMsg": "Access post details failed", "err": "DWM_PRED01" }, "err_404": { "errMsg": "Access post details failed because of pid is not exists", "err": "DWM_PRED02" } } } }, "/discussion/v2/posts/:pid": { "post": { "endPoint": "/discussion/v2/posts/:pid", "key": "DiscussionForumCreatePost", "errorObject": { "err_500": { "errMsg": "Create post failed", "err": "DMW_PCRT03" }, "err_404": { "errMsg": "Create post failed because of nodebb-plugin-write-api is not enabled or pid not exists", "err": "DMW_PCRT04" }, "err_401": { "errMsg": "Create post failed because of you are not authorized", "err": "DMW_PCRT05" }, "err_400": { "errMsg": "Create post failed because of request payload is incorrect", "err": "DMW_PCRT06" } } }, "delete": { "endPoint": "/discussion/v2/posts/:pid", "key": "DiscussionForumDeletePost", "errorObject": { "err_500": { "errMsg": "Delete post failed", "err": "DMW_PCRT07" }, "err_404": { "errMsg": "Delete post failed because of nodebb-plugin-write-api is not enabled or pid not exists", "err": "DMW_PCRT08" }, "err_401": { "errMsg": "Delete post failed because of you are not authorized", "err": "DMW_PCRT09" }, "err_400": { "errMsg": "Delete post failed because of pid is not exists", "err": "DMW_PCRT10" } } } }, "/discussion/v2/posts/:pid/vote": { "post": { "endPoint": "/discussion/v2/posts/:pid/vote", "key": "DiscussionForumCreatePost", "errorObject": { "err_500": { "errMsg": "Adding vote to a post failed", "err": "DMW_PVOT11" }, "err_404": { "errMsg": "Adding vote to a post failed because of nodebb-plugin-write-api is not enabled or pid not exists", "err": "DMW_PVOT12" }, "err_401": { "errMsg": "Adding vote to a post failed because of you are not authorized", "err": "DMW_PVOT13" }, "err_400": { "errMsg": "Adding vote to a post failed because of request payload is incorrect", "err": "DMW_PVOT14" } } }, "delete": { "endPoint": "/discussion/v2/posts/:pid/vote", "key": "DiscussionForumDeletePost", "errorObject": { "err_500": { "errMsg": "Deleting vote failed", "err": "DMW_PVDL15" }, "err_404": { "errMsg": "Deleting vote failed because of nodebb-plugin-write-api is not enabled or pid not exists", "err": "DMW_PVDL16" }, "err_401": { "errMsg": "Deleting vote failed because of you are not authorized", "err": "DMW_PVDL17" }, "err_400": { "errMsg": "Deleting vote failed because of pid is incorrect", "err": "DMW_PVDL18" } } } }, "/discussion/v2/posts/:pid/bookmark": { "post": { "endPoint": "/discussion/v2/posts/:pid/bookmark", "key": "DiscussionForumSavePost", "errorObject": { "err_500": { "errMsg": "Bookmark post failed", "err": "DMW_PSVE19" }, "err_404": { "errMsg": "Bookmark post failed because of nodebb-plugin-write-api not enabled or pid not exists", "err": "DMW_PSVE20" }, "err_401": { "errMsg": "Bookmark post failed because of you are not authorized", "err": "DMW_PSVE21" }, "err_400": { "errMsg": "Bookmark post failed because of pid is incorrect", "err": "DMW_PSVE22" } } }, "delete": { "endPoint": "/discussion/v2/posts/:pid/bookmark", "key": "DiscussionForumUnsavePost", "errorObject": { "err_500": { "errMsg": "Delete bookmark failed", "err": "DMW_PUSVE23" }, "err_404": { "errMsg": "Delete bookmark failed because of nodebb-plugin-write-api is not enabled or pid incorrect.", "err": "DMW_PSVE24" }, "err_401": { "errMsg": "Delete bookmark failed because of you are not authorized", "err": "DMW_PSVE25" }, "err_400": { "errMsg": "Delete bookmark failed because of pid not exists", "err": "DMW_PSVE26" } } } } } }
Challenges:
We can not tract nodebb api errors, because we are only accessing nodebb api, we not doing code changes.
We can track only discussion forum Errors and Portal Errors. But In Middleware and Portal backend we are doing proxy calls only, so we can tract only code issues instead of actual api issues.
How to get proper error code for a particular api in discussion middleware?
To get the proper error code for a particular api, we are maintain a json object like below
{ '/discussions/forum/v2/read': { 'errorMsg': "Forum read api failed because of plugin not enabled", 'err': "DMW_FRED01" }, '/discussions/forum/v2/creat': { 'errorMsg': "Forum creat api failed because of plugin not enabled", 'err': "DMW_FCRT02" }, '/discussions/v2/topic': { 'errorMsg': "Create topic failed", 'err': "DMW_TCRT17" }, ..... ..... ..... }
in Proxy object we are mapping the error code like below
**** Import Error Json file here as errorCodes ***** app.post(`${BASE_REPORT_URL}/forum/v2/read`, proxyObject()); app.post(`${BASE_REPORT_URL}/forum/v2/create`, proxyObject()); app.post(`${BASE_REPORT_URL}/v2/topics`, proxyObject()); function proxyObject() { return proxy(nodebbServiceUrl, { proxyReqOptDecorator: proxyUtils.decorateRequestHeaders(), proxyReqPathResolver: function (req) { let urlParam = req.originalUrl.replace('/discussion', ''); let query = require('url').parse(req.url).query; if (query) { return require('url').parse(nodebbServiceUrl+ urlParam + '?' + query).path } else { const incomingUrl = req.protocol + '://' + req.get('host') + req.originalUrl; const proxyUrl = require('url').parse(nodebbServiceUrl + urlParam); return proxyUrl.path; } }, userResDecorator: (proxyRes, proxyResData, req, res) => { try { const data = (proxyResData.toString('utf8')); if (proxyRes.statusCode === 404 ) { return data; } else { return proxyUtils.handleSessionExpiry(proxyRes, proxyResData, req, res, data); } } catch (err) { *** Here is mapping happned const errorObj = errorCodes[req.originalUrl]; { "id": "discussion.forum.middleware", "ver": "1.0", "ts": "2020-11-25T07:18:09.945Z", "params": { "resmsgid": "5f36c090-2eee-11eb-80ed-6bb70096c082", "msgid": "req.headers['x-requester-id']", "status": "failed", "err": errorObj.err, "errmsg": errorObj .errorMsg } } *** return proxyUtils.handleSessionExpiry(proxyRes, proxyResData, req, res); } } }) }