...
Code Block |
---|
curl --location --request POST 'https://dev.sunbirded.org/api/user/feed/v1/create' \ --header 'Authorization: Bearer <Bearer Key>' \ --header 'x-authenticated-user-token: <user-token>' \ --header 'Content-Type: application/json' \ --data-raw '{ "request": { "userId": "e79ee6a4-d79c-4236-9e05-f754010932d6", "category": "group-feed", "priority": 1, "data": { "groupIdactionData": { "actionType": "c59cca34-c574-49ad-953b-c1cfc7ad50a3groupNotify", "messagetitle":"You are added to a group. Click here to explore", // this should be a dynamic message "Title for Notification", "description": "Description which will be displayed in Notification", "activityIdcontentURL": "my-groups/group-details/c59cca34-c574-49ad-953b-c1cfc7ad50a3", // this should be added when we add activity to a group"identifier": // } } }' |
Response:
Code Block |
---|
{ "id": "api.user.feed.create", "ver": "v1", "ts": "2021-05-07 06:08:30:954+0000", "params": { "resmsgid": null, "msgid": "9238f58b985ff0903692475346dc2cee", "err": null, "status": "success", "errmsg": null }, "responseCode": "OK", "result": { "response": "SUCCESS" } } |
...
Code Block |
---|
{ "id": "api.user.feed.e79ee6a4-d79c-4236-9e05-f754010932d6", "ver": "v1", "ts": "2021-05-0710 0605:3254:4935:561649+0000", "params": { "resmsgid": null, "msgid": "be4d91699dd609f36677eee9c9b57d3b8470ecb7fa05d7d22313a30c9a16927d", "err": null, "status": "success", "errmsg": null }, "responseCode": "OK", "result": { "response": { "userFeed": [ { "id": "1181f2c1ddab7b78-e9445978-473b4a11-8b87b7f8-b9513087347b6594c7a6e7b8", "userId": "e79ee6a4-d79c-4236-9e05-f754010932d6", "category": "group-feed", "priority": 1, "createdBy": "8454cb21e79ee6a4-3ce9d79c-4e304236-85b59e05-fade097880d8f754010932d6", "status": "unread", "data": { "actionData": { "actionType": "groupNotify", "groupIdtitle": "c59cca34-c574-49ad-953b-c1cfc7ad50a3",Title for Notification", "messagedescription": "Description which will "You are added to a group. Click here to explore",be displayed in Notification", "contentURL": "my-groups/group-details/c59cca34-c574-49ad-953b-c1cfc7ad50a3", "activityIdidentifier": "" } }, "createdOn": 16203690237271620626043127 } ] } } } |
Mark notification as read:
...
Code Block |
---|
{ "id": "api.user.feed.update/delete", "ver": "v1", "ts": "2021-05-07 06:54:22:856+0000", "params": { "resmsgid": null, "msgid": "814e2ade1965ede9dce2fe6fac2bc61d", "err": null, "status": "success", "errmsg": null }, "responseCode": "OK", "result": { "response": "SUCCESS" } } |
Proposed solutions :
Solution 1: Generic solution
Triggering notification will be handled from CSL side
inside on click event handler, we’ll make a generic method in the portal side.
This will make sure irrespective of the category (user-feed, group-feed, etc), it will perform the defined action.
There won't be any hardcoded checks before redirecting.
redirection URL will also be part of the response.
Pros:
It can be used later as well.
There will not be any code changes required for this if it becomes generic.
Cons:
Since it is hardcoded in the portal side to support Category type as “notification“ to show the notifications, we need to make some code changes
Solution 2: Only to handle groups scenario:
create a method in group service.
It will take care of the redirection based on the category (group-feed).
It will only be bound to groups scenario.
Pros:
less code change
Cons:
It will be only related to groups scenario.
if any new requirements come, we need to modify the code once again.