Skip to main content

Communicator for internal services

Project description

https://badge.fury.io/py/services_communicator.svg https://travis-ci.org/eshafik/services_communicator.svg?branch=master https://codecov.io/gh/eshafik/services_communicator/branch/master/graph/badge.svg

Communicator for internal services

Documentation

The full documentation is at https://services_communicator.readthedocs.io.

Quickstart

Install Services-Communicator:

pip install services_communicator

Add it to your INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'services_communicator.apps.services_communicator',
    ...
)

Make migrate to database:

python manage.py migrate

Add CREDENTIALS on settings.py file:

CREDENTIALS = { <service id>: {"username": <username>, "password": <password>},
                <service id>: {"username": <username>, "password": <password>},
                ..........................................................
                }
or,
CREDENTIALS = { "<service slug>": {"username": <username>, "password": <password>},
                "<service slug>": {"username": <username>, "password": <password>},
                ..........................................................
                }
or,
CREDENTIALS = { "<service guid>": {"username": <username>, "password": <password>},
                "<service guid>": {"username": <username>, "password": <password>},
                ..........................................................
                }

Now make your own Communicator:

from services_communicator.communicator import Communicator

class CustomCommunicator(Communicator):
    """ Create your custom method here like this by inheriting Communicator"""

    def get_roles(self, *args, **kwargs):
        """
            - To get other service roles
        :return:
        """
        path = self.service.get_full_url + "/users/get_role/" # service url extension to do this task
        response = self._get_action(path=path, headers=self._token())
        return response.json()

    def post_roles(self, *args, **kwargs):
        """
            - To create other service roles
        :return:
        """
        data = data
        path = self.service.get_full_url + "/users/create_role/" # service url extension to do this task
        response = self._post_action(path=path, data=data, headers=self._token())
        return response.json()

    def patch_roles(self, *args, **kwargs):
        """
            - To create other service roles
        :return:
        """
        data = data
        path = self.service.get_full_url + "/users/update_role/" # service url extension to do this task
        response = self._patch_action(path=path, data=data, headers=self._token())
        return response.json()

To perform action, initialize your CustomCommunicator and call your required methods:

service_communicator = CustomCommunicator(**{"service_id": <id>})
or,
service_communicator = CustomCommunicator(**{"service_slug": "<service slug>"})
or,
service_communicator = CustomCommunicator(**{"service_guid": "<service guid>"})

Now you can call your methods to perform specific task:

response = service_communicator.get_roles()

Precaution

  • This module is designed only for the personal development purpose.

History

0.1.0 (2020-01-13)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for services-communicator, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size services_communicator-0.1.2-py2.py3-none-any.whl (10.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size services_communicator-0.1.2.tar.gz (9.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page