File | Date | Author | Commit |
---|---|---|---|
.gitignore | 2018-05-12 | Miguel Rodrigues | [43c603] Merge conflicts |
docker-compose.yml | 2018-05-12 | Miguel Rodrigues | [43c603] Merge conflicts |
readme.md | 2018-05-12 | Miguel Rodrigues | [a58bf5] Merge branch 'develop' |
Read Me
ERROR! The markdown supplied could not be parsed correctly. Did you forget to surround a code snippet with "~~~~"?
## Notification Enabler ### Read me #### 1. Prerequisite In order to run this enabler code on your local machine you should have installed: **MySQL** should be installed and running at: `localhost:3306` #### 2. Instalation Clone the repository: `git clone git clone https://<user>@bitbucket.org/miguelrodriguesKBZ/notification-enabler.git` Install dependencies under the cloned folder execute: `npm install` Instal frontend dependencies: `bower install` Start: `npm start` Docker: `To be successful, the database (MySQL) will be in one container and the notification enabler will be in another container. In the Notification Enabler is present a Dockerfile, which is defined the way to be executed and also is present a docker-compose.yml in which will indicate the services to be executed successfully.` Script: `It is important to run the import.sh script in the DB folder for the creation of the database. The file that contains all the information about the sql is inside the same folder.` To Execute: `It is necessary to create a configuration in the configuration enabler where it will result a data.env file in which will contain the defined environment variables.` For this enabler execute will need the following Environment Variables: `PORT USEREMAIL USERPWD DBUSER DBPASSWORD DATABASE` #### 3. API ## vf-OS Enablers ### Enabler 2 - Get Rules ```http GET /api/vf-os-enabler/v0/getRules/myawesomeappid Accept: */* ``` ```http HTTP/1.1 200 OK Content-type: application/json X-Powered-By: Express Date: Tue, 29 Aug 2017 11:04:31 GMT Connection: keep-alive Transfer-Encondig: chunked { "success": true, "data": [ { "rulesID": 11, "description": "New Rule", "parameters": "slumptest,corrigir", "parameter": "slumptest", "conditionValue": ">", "controlValue": "5", "notificationType": 5, "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" } ] } ``` Use this API call whenever is needed to retrieve all rules related to app. #### Request `GET /api/vf-os-enabler/<api_version>/getRules/<app_id>` #### URL Parameters Resource Parameter | Description ---- | ---- api_version | Identifies the API version that will be used for the request app_id | Identifies the APP #### Query Parameters Name | Required | Type | Description ---- | ---- | ---- | ---- appID | Yes | String | appID for identify which app will show the rules. #### Return Payload The API response will contain a JSON document with the property `success`: **true**, **false** and the `data` with the rules of app (if found). In the following Example it's queried all rules related to specific appID: ```json { "success": true, "data": [ { "rulesID": 11, "description": "New Rule", "parameters": "slumptest,corrigir", "parameter": "slumptest", "conditionValue": ">", "controlValue": "5", "notificationType": 5, "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" } ] } ``` #### Return Codes Code | Description --- | --- 200 | Data found 500 | Internal Server Error - There was an unexpected error at some point during the processing of the request. ### Enabler 2 - Get Notifications ```http GET /api/vf-os-enabler/v0/getNotifications/myawesomeappid Accept: */* ``` ```http HTTP/1.1 200 OK Content-type: application/json X-Powered-By: Express Date: Tue, 29 Aug 2017 11:04:31 GMT Connection: keep-alive Transfer-Encondig: chunked { "success": true, "data": [ { "emailTo": "raquel.melo@knowledgebiz.pt", "subject": "slumptest>10", "date": "2018-04-27 12:06:02", "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" } ] } ``` Use this API call whenever is needed to retrieve all notifications of app. #### Request `GET /api/vf-os-enabler/<api_version>/getNotifications/<app_id>` #### URL Parameters Resource Parameter | Description ---- | ---- api_version | Identifies the API version that will be used for the request app_id | Identifies the APP to show the notifications #### Query Parameters Name | Required | Type | Description ---- | ---- | ---- | ---- appID | Yes | String | appID for identify which app will show the rules. #### Return Payload The API response will contain a JSON document with the property `success`: **true**, **false** and the `data` with the notifications of app (if found). In the following Example it's queried the all notifications of specific appID: ```json { "success": true, "data": [ { "emailTo": "miguel.rodrigues@knowledgebiz.pt", "subject": "slumptest=40", "date": "2018-04-27 15:39:51", "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" }, { "emailTo": "miguel.rodrigues@knowledgebiz.pt", "subject": "slumptest=40", "date": "2018-04-27 16:06:00", "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" }, { "emailTo": "miguel.rodrigues@knowledgebiz.pt", "subject": "slumptest=40", "date": "2018-04-27 16:06:09", "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" }, { "emailTo": "miguel.rodrigues@knowledgebiz.pt", "subject": "slumptest=40", "date": "2018-04-27 16:08:30", "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" }, { "emailTo": "miguel.rodrigues@knowledgebiz.pt", "subject": "slumptest=40", "date": "2018-04-27 16:09:51", "token": "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm" } ] } ``` #### Return Codes Code | Description ---- | ---- 200 | Configuration Found 500 | Internal Server Error - There was an unexpected error at some point during the processing of the request. ### Enabler 2 - Get Apps ```http GET /api/vf-os-enabler/v0/getApps/david.aleixo@knowledgebiz.pt Accept: */* ``` ```http HTTP/1.1 200 OK Content-type: application/json X-Powered-By: Express Date: Tue, 29 Aug 2017 13:00:00 GMT Connection: keep-alive Transfer-Encondig: chunked { "success": true, "data": [ { "token": "Es5zfsco57fieoQcDJZuIZxFZWv4HQbBYgUXRgqodQp", "appID": "MiguelID", "developerID": "miguel.rodrigues@knowledgebiz.pt" } ] } ``` Use this API call whenever is needed to retrieve all apps of developerid. #### Request `GET /api/vf-os-enabler/<api_version>/getApps/<developer_id>` #### URL Parameters Resource Parameter | Description ---- | ---- api_version | Identifies the API version that will be used for the request developer_id | Identifies the Developer #### Query Parameters Name | Required | Type | Description ---- | ---- | ---- | ---- developerID | Yes | String | developerID for identify which developer will show the apps. #### Return Payload The API response will contain a JSON document with the property `success`: **true**, **false** and the `data` with the notifications of app (if found). In the following Example it's queried the all Apps of specific developerID: ```json { "success": true, "data": [ { "token": "Es5zfsco57fieoQcDJZuIZxFZWv4HQbBYgUXRgqodQp", "appID": "MiguelID", "developerID": "painatal_vodka@hotmail.com" } ] } ``` #### Return Codes Code | Description --- | --- 200 | Configuration Activated 500 | Internal Server Error - There was an unexpected error at some point during the processing of the request. ### Enabler 2 - Create Notifications ```http POST http://localhost:8000/api/vf-os-enabler/v0/notifications Accept: */* Content-Type: application/json; charset=utf-8 {"body":[{"my_key":"my_value"},{"my_key":"my_value"},{"my_key":"my_value"}]} ``` ```http HTTP/1.1 200 OK Content-type: application/json X-Powered-By: Express Date: Tue, 29 Aug 2017 15:00:00 GMT Connection: keep-alive Transfer-Encondig: chunked {"success": true} ``` Use this API call whenever is needed to create a new configuration version for one enabler. #### Request `POST /api/vf-os-enabler/<api_version>/enabler/notifications` #### URL Parameters Resource Parameter | Description ---- | ---- api_version | Identifies the API version that will be used for the request #### JSON Body Payload Name | Required | Type | Description ---- | ---- | ---- | --- body | Yes | JSON | JSON document where the custom notification parameters are. Example: [{"emailTo" : "miguel.rodrigues@knowledgebiz.pt"},{"subject" : "slumptest=10"},{"token" : "fgTJAyuX0M4tpn1P2WXAJmRbDH7hwbVhZsL26Ca1Ecm"}] #### Return Payload The API response will contain a JSON document with the property `success`: **true**, **false** and the `reason` if the `success` became **false**. Example: ```json { "success": true } ``` #### Return Codes Code | Description ---- | ---- 200 | Configuration created successfully 500 | Internal Server Error - There was an unexpected error at some point during the processing of the request. ### Enabler 2 - Create App ```http POST http://localhost:8000/api/vf-os-enabler/v0/register Accept: */* Content-Type: application/json; charset=utf-8 {"body":[{"my_key":"my_value"},{"my_key":"my_value"}]} ``` ```http HTTP/1.1 200 OK Content-type: application/json X-Powered-By: Express Date: Tue, 29 Aug 2017 15:00:00 GMT Connection: keep-alive Transfer-Encondig: chunked "success": true, "data": { "token": "Z58oqMmXJJzC1KHAaPurgohg00xgklomu5DVXgcZwj4" } ``` Use this API call whenever is needed to create a new configuration version for one enabler. #### Request `POST /api/vf-os-enabler/<api_version>/enabler/register` #### URL Parameters Resource Parameter | Description ---- | ---- api_version | Identifies the API version that will be used for the request #### JSON Body Payload Name | Required | Type | Description ---- | ---- | ---- | --- body | Yes | JSON | JSON document where the custom notification parameters are. Example: [{"appID" : "KBZ"},{"developerID" : "miguel.rodrigues@knowledgebiz.pt"}] #### Return Payload The API response will contain a JSON document with the property `success`: **true**, **false** and the `data` if the `success` became **false**. Example: ```json { "success": true, "data": { "token": "Z58oqMmXJJzC1KHAaPurgohg00xgklomu5DVXgcZwj4" } } ``` #### Return Codes Code | Description ---- | ---- 200 | Configuration created successfully 500 | Internal Server Error - There was an unexpected error at some point during the processing of the request. ### Enabler 2 - Create Rules ```http POST http://localhost:8000/api/vf-os-enabler/v0/notifications/rules Accept: */* Content-Type: application/json; charset=utf-8 {"body":[{"my_key":"my_value"},{"my_key":"my_value"},{"my_key":"my_value"},{"my_key":"my_value"},{"my_key":"my_value"},{"my_key":"my_value"},{"my_key":"my_value"]} ``` ```http HTTP/1.1 200 OK Content-type: application/json X-Powered-By: Express Date: Tue, 29 Aug 2017 15:00:00 GMT Connection: keep-alive Transfer-Encondig: chunked { "success": true } ``` Use this API call whenever is needed to create a new configuration version for one enabler. #### Request `POST /api/vf-os-enabler/<api_version>/enabler/rules` #### URL Parameters Resource Parameter | Description ---- | ---- api_version | Identifies the API version that will be used for the request #### JSON Body Payload Name | Required | Type | Description ---- | ---- | ---- | --- body | Yes | JSON | JSON document where the custom notification parameters are. Example: [{"appID" : "KBZ"},{"description" : "So many Tests"},{"parameters" : "Test,AnotherTest,Test3"},{"parameter" : "Test"},{"conditionValue" : ">"},{"controlValue" : "100"},{"notificationType" : "5"}] #### Return Payload The API response will contain a JSON document with the property `success`: **true**, **false** and the `reason` if the `success` became **false**. Example: ```json { "success": true } ``` #### Return Codes Code | Description ---- | ---- 200 | Configuration created successfully 500 | Internal Server Error - There was an unexpected error at some point during the processing of the request. ### Powered by: ![alt text](https://static.wixstatic.com/media/d65bd8_d460ab5a6ff54207a8ac3e7497af18c4~mv2_d_4201_2594_s_4_2.png "Notification Enabler")