Sign inSign up

terragontech/config-ms

By terragontech

Updated over 7 years ago

Short Code Configuration Microservice

Image
0

817

terragontech/config-ms repository overview

Terragon kannel Config Service

The Config Service properly route messages to different application configured on our VAS network operator,

Get API running

python app.py

Get Background running

python q_route.py

Routes

ItemValue
Base/
Create New Config/config/create
List Configs/config/list
Update Config/config/update/{config_id}
Drop Config/config/drop/{config_id}
Add Short Code/config/add/shortcode/{config_id}
Remove Short Code/config/remove/shortcode/{config_id}
Add Keyword/config/add/keyword/{config_id}
Remove Keyword/config/remove/keyword/{config_id}
Add Operator/config/add/operator/{config_id}
Remove Operator/config/remove/operator/{config_id}
Add Prefix/config/add/prefix/{config_id}
Remove Prefix/config/remove/prefix/{config_id}
update Feedback/config/feedback/{config_id}
update app_url/config/appurl/{config_id}
Create New Config

POST {base_url}/config/create

Request parameters:

ParameterTypeMandatoryDescription
app_urlstring+Url of intended application to receive the request
operatorstring+operator attached to the config
keywordstring-Keyword attached to the config, set value to defaults if default config
prefixstring-prefix attached to the config, this is used for sharing shortcode
shortcodestring+Short code attached to config
feedbackinteger-set to 1 if this config requires users response, default is 0

Sample Response:

{
    "message": "Config successfully created",
    "code": 0,
    "response": {},
    "error": false
}
List Configs

GET {base_url}/config/list

Request parameters:

ParameterTypeMandatoryDescription
keywordstringsearch by keyword
operatorstringsearch by operator
shortcodestringsearch by shortcode

Sample Response:

{
    "message": "Config successfully fetched",
    "code": 200,
    "response": {
        "configs": {
            "total": 2,
            "list": [
                {
                    "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
                    "operator": [
                        "etisalat"
                    ],
                    "config_id": "823456462782",
                    "shortcode": [
                        "30047"
                    ],
                    "keyword": [
                        "stop",
                        "help",
                        "info"
                    ],
                    "feeback":0
                },
                {
                    "app_url": "google.com",
                    "operator": [
                        "etisalat"
                    ],
                    "config_id": "343929085746",
                    "shortcode": [
                        "30047"
                    ],
                    "keyword": [
                        "default"
                    ],
                    "feeback":1
                }
            ]
        }
    },
    "error": false
}
Update Config

PUT /config/update/{config_id}

Request parameters:

ParameterTypeMandatoryDescription
app_urlstring+Url of intended application to receive the request
operatorstring+operator attached to the config
keywordstringKeyword attached to the config, set value to defaults if default config
shortcodestring+Short code attached to config.

Request Json:


{
	"app_url":"http://etisalat.terragonbase.com/api/kannel/request/",
	"operator":["etisalat"],
	"keyword":["stop","help","info"]
}

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":0
        }
    },
    "error": false
}
Drop Config

DELETE {base_url}/config/drop/{config_id}

Sample Response:

{
    "message": "Config successfully dropped",
    "code": 0,
    "response": {},
    "error": false
}
Add Keyword

PUT {base_url}/config/add/keyword/{config_id}?keyword=help

Request parameters:

ParameterTypeMandatoryDescription
keywordstring+keyword to add to the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":0
        }
    },
    "error": false
}
Add Shortcode

PUT {base_url}/config/add/shortcode/{config_id}?operator=mtn

Request parameters:

ParameterTypeMandatoryDescription
operatorstring+operator to add to the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":0
        }
    },
    "error": false
}
Add Operator

PUT {base_url}/config/add/operator/{config_id}?operator=mtn

Request parameters:

ParameterTypeMandatoryDescription
operatorstring+operator to add to the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":0
        }
    },
    "error": false
}
Add Prefix

PUT {base_url}/config/add/prefix/{config_id}?keyword=stayon

Request parameters:

ParameterTypeMandatoryDescription
keywordstring+prefix to add to the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "prefix": [
                "stayon"
            ],
            "feeback":0
        }
    },
    "error": false
}
Remove Keyword

PUT {base_url}/config/remove/shortcode/{config_id}?keyword=help

Request parameters:

ParameterTypeMandatoryDescription
keywordstring+keyword to be remove from the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":0
        }
    },
    "error": false
}
Remove Operator

PUT {base_url}/config/remove/shortcode/{config_id}?operator=mtn

Request parameters:

ParameterTypeMandatoryDescription
operatorstring+operator to be remove from the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":0
        }
    },
    "error": false
}
Remove Short Code

PUT {base_url}/config/remove/shortcode/{config_id}?code=1115

Request parameters:

ParameterTypeMandatoryDescription
codestring+short code to to be remove from the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":0
        }
    },
    "error": false
}
Remove Prefix

PUT {base_url}/config/remove/prefix/{config_id}?keyword=stayon

Request parameters:

ParameterTypeMandatoryDescription
keywordstring+keyword to be remove from the config

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "prefix": [
            ],
            "feeback":0
        }
    },
    "error": false
}
Update Feedback

PUT {base_url}/config/feedback/{config_id}?feedback=1

Request parameters:

ParameterTypeMandatoryDescription
feedbackinteger+set to 1 or 0

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ],
            "feeback":1
        }
    },
    "error": false
}
Update Application Url

PUT {base_url}/config/appurl/{config_id}?url=http://sampleurl.com

Request parameters:

ParameterTypeMandatoryDescription
urlstring+application url

Sample Response:

{
    "message": "Config successfully updated",
    "code": 200,
    "response": {
        "config": {
            "app_url": "http://etisalat.terragonbase.com/api/kannel/request/",
            "operator": [
                "etisalat"
            ],
            "config_id": "823456462782",
            "shortcode": [
                "30047",
                "1115"
            ],
            "keyword": [
                "stop",
                "help",
                "info"
            ]
        }
    },
    "error": false
}
Incoming Request
GET {base_url}/request/incoming?msisdn={msisdn}&operator={operator}&message={message}&shortcode={shortcode}

Request parameters Received:

ParameterTypeMandatoryDescription
msisdnstring+msisdn sending the request
operatorstring+operator receiving the request
messagestring+message sent by the user
shortcodestring+Short code receiving the request
timestringtime the request was sent in date-string.

Request Sent to Application:

ParameterTypeMandatoryDescription
msisdnstring+msisdn sending the request
operatorstring+operator receiving the request
messagestring+message sent by the user
shortcodestring+Short code receiving the request
timestringtime the request was sent in date-string.
session_idstring+session_id for tracking conversation.

See API documentation in Postman collection. https://www.getpostman.com/collections/92dffc4bb1f81974a23d

Environment Variables to set
ItemValue
APP_PORTPort for app to run on
ELASTICSEARCH_HOSTElasticsearch host
ELASTICSEARCH_PORTElasticsearch Port Number
REDIS_HOSTRedis host
REDIS_PORTRedis Port Number
REDIS_PASSRedis password Number
REDIS_DBRedis db
RABBITMQ_HOSTRabbitmq host
RABBITMQ_PORTRabbitmq Port Number
RABBITMQ_USERNAMERabbitmq username
RABBITMQ_PASSWORDRabbitmq password

Tag summary

Content type

Image

Digest

Size

86.2 MB

Last updated

over 7 years ago

docker pull terragontech/config-ms