Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

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

API errors- Revised

User Interface error

FORUM API's






/forum/v2/read

FRED

DMW_FRED

01

Forum read failed because of nodebb-plugin-create-forum plugin not enabled.


DMW_FRED01

The nodebb plug-in or the API is not available. Contact your system administrator to enable it.

/forum/v2/read

FRED

DMW_FRED

02

Forum read failed because of request payload issue

DMW_FRED02

Mandatory fields are missing in the request. Enter the required values and resend the request.

/forum/v2/read

FRED

DMW_FRED

03

Forum read failed

DMW_FRED03

Forum read failed due to internal server error or database issues. Try again later.

/forum/v2/create

FCRT

DMW_FCRT

04

Forum create failed because

nodebb-plugin-create-forum

not enabled.

DMW_FCRT04

Forum creation failed as the nodebb plug-in or the API is not available. Contact your system administrator to enable it.

Unable to create Forum. Contact your system administrator.

/forum/v2/create


DMW_FCRT

05

Forum create failed because of request payload issue.

DMW_FCRT05

Forum creation failed, mandatory fields are missing in the request. Enter the required values and resend the request.

Unable to create forum, re-enter the values and try again.

/forum/v2/create


DMW_FCRT

06

Forum create failed

DMW_FCRT06

Forum creation failed due to internal server error or database issues. Try again later.

Unable to create forum, try again later.

/forum/v2/remove

FREM

DMW_FREM

07

Forum remove failed because

nodebb-plugin-create-forum

not enabled.

DMW_FREM07

Removing forum failed, the nodebb plug-in or the API is not available. Contact your system administrator to enable it.

Could not remove forum. Contact your system administrator

/forum/v2/remove


DMW_FREM

08

Forum remove failed

DMW_FREM08

Removing forum failed as mandatory fields are missing in the request. Enter the required values and resend the request.

Could not remove forum. Try again later.

/forum/v2/remove


DMW_FREM

09

Forum remove failed because of request pay is incorrect

DMW_FREM09

Removing Forum failed due to internal server error or database issues. Try again later.

Could not remove forum. Try again later.

Tags API






/tags

TRED

DMW_TRED

01

Tags read failed

DMW_TRED01

Could not read tags. Try again later

/tags/list

TLST

DMW_TLST

02

Tags list read failed

DMW_TLST02

Could not read tags. Try again later

/tags/:tag

TRDIS

DMW_TRDIS

03

Tag related discussion read failed

DMW_TRDIS03

Could not read tags. Try again later.

USER DETAILS API's






/user/:userslug

URED

DMW_URED

01

User details read failed

DMW_URED01

Could not read user details. Try again later.

/user/:userslug


DMW_URED

02

Users details read failed because of user not exists

DMW_URED02

Could not read user details. Try again later.

/user/:userslug/upvoted

UUVR

DMW_URED

03

User up vote post details read failed

DMW_UUVR03

Could not read post. Try again later.

/user/:userslug/upvoted


DMW_URED

04

User up vote post details read failed because of user not exists

DMW_UUVR04

Could not read post. Try again later.

/user/:userslug/downvoted

UDVR

DMW_URED

05

User down vote post details read failed

DMW_UDVR05

Could not read post. Try again later.

/user/:userslug/downvoted


DMW_URED

06

User down vote post details read failed because of user not exists.

DMW_UDVR06

Could not read post. Try again later.

/user/:userslug/bookmarks

UBMR

DMW_URED

07

User saved post details read failed

DMW_UBMR07

Could not read post. Try again later.

/user/:userslug/bookmarks


DMW_URED

08

User saved post details read failed because of user not exists

DMW_UBMR08

Could not read post. Try again later.

/user/v1/create

UCRT

DMW_UCRT

09

Create user failed

DMW_UCRT09

Could not create user. Try again later.

/user/v1/create


DMW_UCRT

10

Create user failed because of nodebb-plugin-sunbird-oidc plugin not enable

DMW_UCRT10

Could not create user. Try again later.

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:

  1. We can not tract nodebb api errors, because we are only accessing nodebb api, we not doing code changes.

  2. 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);
      }
    }
  })
}

  • No labels