# eFood Notification Service This service is to notify users (customers, merchants, heroes) regarding any information (offers, discounts etc) that an admin wants to send. In development, notification base url : `http://api-dev.evaly.com.bd/efood-notification` ### Create Notification - `Description:` This api creates a new notification to send to the target group of user. - `Endpoint` : `/api/v1.0.0//notifications` - `Method` : `POST` - `Headers` : - `SERVICE` : < service type here > - `SECRET-KEY`: < evaly secret key here> - `Query Parameters` : `N/A` - `Request Body` : ```json= { "notification_body": "Notification from shipu", "notification_title": "Test Notification", "notification_type": "food", "invoice_no": "321", "to": "01800000000" } ``` - `Response Body` : ```json= { "success": true, "message": "Created", "data": { "body": "Notification from shipu", "title": "Test Notification", "type": "food", "resource_id": "321", "icon": null, "redirect_url": null, "misc": null } } ``` `Message` field contains "Created" or error log for unsuccessful requests. `Data` field contains the description, title and other information regarding the notification. ### Update Notification Status - `Description:` This api used to update status of a notification as read. - `Endpoint` : `/api/v1.0.0/notifications` - `Method` : `PUT` - `Headers` : - `Authorization` : < access token here > - `Query Parameters` : `N/A` - `Request Body` : ```json= { "ids": ["5fdf180bc50efae4302420b5"] } ``` - `Response Body` : ```json= { "success": true, "message": "notifications are marked as seen", "data": {} } ``` `Message` field describes the success of the request. ### Custom Send Notification - `Description:` This api creates a new notification to send to a specific user. - `Endpoint` : `/api/v1.0.0/bulk/notifications` - `Method` : `POST` - `Headers` : - `Authorization` : < access token here > - `SECRET-KEY` : < evaly secret key here> - `Query Parameters` : `N/A` - `Request Body` : ```json= { "notification_body": "edrheg asdf esadf sadf asdf asf adsf sadf sadf sadf sadf↵ sdaf ↵asdf sad↵f sdf↵ s", "notification_title": "Title of the notification", "notification_type": "hero_promotion", "notification_topic": "hero", "image_url": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/2f3ef0b0e986-isupportimg_1539524689349.png", "to": ["01920520407"] } ``` - `Response Body` : ```json= { "success": true, "message": "Notification Send. It's takes few minutes", "data": {} } ``` `Message` field contains information regarding the sent notification. ### Notification Subscription - `Description:` Creates subscription for a specific group. - `Endpoint` : `/api/v1.0.0/subscriptions` - `Method` : `POST` - `Headers` : - `Authorization` : < access token here > - `EV_NOTIFICATION_TOPIC` : < notification topic here > - `Query Parameters` : `N/A` - `Request Body` : ```json= { "subscription_token": "cLwWOomkov4HxWc0fD0Fyj:APA91bEOTknStHzaxv3t5dAbtwa7XArhtJb4PE4ePyg_a7CxoBDIWu2jmDkzg1nMuAtBnJnJb5BIPmLAizRLshqv-p3DuFYu_66eI0r3xhqSP6CTuHREj6_ptjBn-3_1zUhJ_NQ9JIkc", "unsubscription_token": null, "notification_topic": "hero_admin_all", "to": null } ``` - `Response Body` : ```json= { "success": true, "message": "token successfully subscribe", "data": {} } ``` `Message` field contains success message or error log for unsuccessful requests. ### Delete Notification - `Description:` This API deletes all the notification of users keeping only the latest 5 notifications. - `Endpoint` : `/api/v1.0.0/delete/notifications` - `Method` : `POST` - `Headers` : - `SECRET-KEY` : < evaly secret key here> - `Query Parameters` : `N/A` - `Request Body` : `N/A` - `Response Body` : ```json= { "success": true, "message": "Status OK", "data": [ { "to": "01300000000", "deleted_count": 75 }, { "to": "01911111111", "deleted_count": 93 }, { "to": "01300000044", "deleted_count": 9 }, { "to": "77777777770", "deleted_count": 468 }, { "to": "88888888885", "deleted_count": 1 }, { "to": "01313131313", "deleted_count": 109 }, { "to": "01747021966", "deleted_count": 54 }, { "to": "25111111111", "deleted_count": 13 }, { "to": "88888888883", "deleted_count": 13 }, { "to": "01920520407", "deleted_count": 103 }, { "to": "dev_hero_admin_all", "deleted_count": 1095 }, { "to": "01800000000", "deleted_count": 151 }, { "to": "01723878203", "deleted_count": 4 }, { "to": "01311111111", "deleted_count": 18 }, { "to": "01999999990", "deleted_count": 14 }, { "to": "01300000005", "deleted_count": 602 }, { "to": "shanto", "deleted_count": 4 }, { "to": "dev_efood_admin_all", "deleted_count": 1092 }, { "to": "shipu", "deleted_count": 5 }, { "to": "01822222222", "deleted_count": 68 }, { "to": "01711111111", "deleted_count": 7 }, { "to": "01683193505", "deleted_count": 284 }, { "to": "01300000043", "deleted_count": 86 }, { "to": "01742001078", "deleted_count": 2 }, { "to": "01703811371", "deleted_count": 23 }, { "to": "01730445665", "deleted_count": 40 }, { "to": "01938504111", "deleted_count": 82 }, { "to": "01678691763", "deleted_count": 14 }, { "to": "77777777771", "deleted_count": 71 }, { "to": "dev_hero_all", "deleted_count": 23 }, { "to": "01700000001", "deleted_count": 4 }, { "to": "dev_evaly_admin_all", "deleted_count": 7 }, { "to": "01751977045", "deleted_count": 11 }, { "to": "01313131300", "deleted_count": 2 }, { "to": "01750265167", "deleted_count": 40 }, { "to": "01310101010", "deleted_count": 6 }, { "to": "01700000011", "deleted_count": 51 }, { "to": "01932062088", "deleted_count": 669 } ] } ``` `Message` field contains the `Status OK` or error log for unsuccessful requests. `Data` field contains the informations regarding the notification receiver and the deleted count for that user. ### Get Notification - `Description:` Lets an user view the list of their notifications. - `Endpoint` : `/api/v1.0.0/notifications` - `Method` : `GET` - `Headers` : - `Authorization` : < service type here > - `X-EVALY-NOTIFICATION-TOPIC` : < notification topic here > - `Query Parameters` : `N/A` - `Request Body` : - `Response Body` : ```json= { "success": true, "message": "Status OK", "data": [ { "_id": "5fdf180bc50efae4302420b5", "status": "unread", "body": "Notification from shipu", "title": "Test Notification", "type": "food", "resource_id": "321", "misc": null, "timestamp": "2020-12-20T09:23:23.966564+06:00" }, { "_id": "5fdf0e2bc50efae4302420b0", "status": "unread", "body": "Order EVF0000020668 is accepted by an Evaly hero", "title": "Order Status Update", "type": "order_status_update", "resource_id": "EVF0000020668", "misc": null, "timestamp": "2020-12-20T08:41:15.614212+06:00" }, { "_id": "5fdf0e2ace77f1736ff8b603", "status": "unread", "body": "Order EVF0000020668 is accepted by an Evaly hero", "title": "Order Status Update", "type": "order_status_accepted", "resource_id": "EVF0000020668", "misc": null, "timestamp": "2020-12-20T08:41:14.575051+06:00" }, { "_id": "5fdf0e11c50efae4302420ae", "status": "unread", "body": "Order EVF0000020668 is confirmed", "title": "Order Status Update", "type": "order_status_update", "resource_id": "EVF0000020668", "misc": null, "timestamp": "2020-12-20T08:40:49.849462+06:00" }, { "_id": "5fdf0e11ce77f1736ff8b602", "status": "unread", "body": "Order EVF0000020668 is confirmed", "title": "Order Status Update", "type": "order_status_confirmed", "resource_id": "EVF0000020668", "misc": null, "timestamp": "2020-12-20T08:40:49.769321+06:00" }, { "_id": "5fdf0cc3c50efae4302420ab", "status": "unread", "body": "Order EVF0000020522 is confirmed", "title": "Order Status Update", "type": "order_status_update", "resource_id": "EVF0000020522", "misc": null, "timestamp": "2020-12-20T08:35:15.101073+06:00" }, { "_id": "5fdf0cc2ce77f1736ff8b601", "status": "unread", "body": "Order EVF0000020522 is confirmed", "title": "Order Status Update", "type": "order_status_confirmed", "resource_id": "EVF0000020522", "misc": null, "timestamp": "2020-12-20T08:35:14.942598+06:00" } ] } ``` `Message` field contains the `Status OK` or error log for unsuccessful requests. `Data` field contains the informations regarding the received notification. ### Base Request - `Description:` List of all type of push notification service. - `Endpoint` : `/swagger.json` - `Method` : `GET` - `Headers` : `N/A` - `Query Parameters` : `N/A` - `Request Body` : `N/A` - `Response Body` : ```json= { "swagger": "2.0", "info": { "description": "All type of push notification service", "version": "v1.0.0", "title": "Notification Service" }, "host": "api-dev.evaly.com.bd", "basePath": "/efood-notification", "tags": [ { "name": "Notification Service", "description": "" } ], "schemes": [ "https" ], "paths": { "/": { "get": { "tags": [ "Notification Service" ], "summary": "Base Request", "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/bulk/notifications": { "post": { "tags": [ "Notification Service" ], "summary": "Custom Send Notification", "consumes": [ "application/json" ], "parameters": [ { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true }, { "name": "Content-Type", "in": "header", "type": "string", "description": "", "required": true }, { "name": "SECRET-KEY", "in": "header", "type": "string", "description": "", "required": false } ], "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/delete/notifications": { "post": { "tags": [ "Notification Service" ], "summary": "Delete Notification", "parameters": [ { "name": "SECRET-KEY", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/groups": { "post": { "tags": [ "Notification Service" ], "summary": "Create Group", "consumes": [ "application/json" ], "parameters": [ { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true }, { "name": "Content-Type", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/groups/5f61e141314078660cffc711": { "get": { "tags": [ "Notification Service" ], "summary": "Get Group", "parameters": [ { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/groups/5f61f00d5c0bb0c6d6650aa0": { "put": { "tags": [ "Notification Service" ], "summary": "Update Group", "consumes": [ "application/json" ], "parameters": [ { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true }, { "name": "Content-Type", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/groups/5f61fc85ec5ec14c128c006b": { "delete": { "tags": [ "Notification Service" ], "summary": "Delete Group", "parameters": [ { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/notifications": { "put": { "tags": [ "Notification Service" ], "summary": "Update Notification Status", "consumes": [ "application/json" ], "parameters": [ { "name": "Content-Type", "in": "header", "type": "string", "description": "", "required": true }, { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } }, "post": { "tags": [ "Notification Service" ], "summary": "Create Notification", "consumes": [ "application/json" ], "parameters": [ { "name": "Content-Type", "in": "header", "type": "string", "description": "", "required": true }, { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true }, { "name": "EV_NOTIFICATION_TOPIC", "in": "header", "type": "string", "description": "", "required": true }, { "name": "SERVICE", "in": "header", "type": "string", "description": "", "required": true }, { "name": "EV_NOTIFICATION_USERNAME", "in": "header", "type": "string", "description": "", "required": true }, { "name": "SECRET-KEY", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } }, "get": { "tags": [ "Notification Service" ], "summary": "Get Notification", "parameters": [ { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true }, { "name": "X-EVALY-PLATFORM", "in": "header", "type": "string", "description": "", "required": true }, { "name": "SECRET-KEY", "in": "header", "type": "string", "description": "", "required": true }, { "name": "X-EVALY-NOTIFICATION-TOPIC", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } } }, "/api/v1.0.0/subscriptions": { "post": { "tags": [ "Notification Service" ], "summary": "Subscription", "consumes": [ "application/json" ], "parameters": [ { "name": "Authorization", "in": "header", "type": "string", "description": "", "required": true }, { "name": "Content-Type", "in": "header", "type": "string", "description": "", "required": true }, { "name": "EV_NOTIFICATION_TOPIC", "in": "header", "type": "string", "description": "", "required": true } ], "responses": { "200": { "description": "successful operation" } } } } } } ```