gabia-sms-Django 1.2.1
Send SMS messages to mobile devices through GABIA SMS api.

===========================
Gabia SMS module for Django
===========================

Python 2 & 3 compatible

.. image:: https://travis-ci.org/athenaslab/gabia-sms-Django.svg?branch=master
    :target: https://travis-ci.org/athenaslab/gabia-sms-Django/
.. image:: https://coveralls.io/repos/github/athenaslab/gabia-sms-Django/badge.svg?branch=master
    :target: https://coveralls.io/github/athenaslab/gabia-sms-Django?branch=master

- Source code: `<https://github.com/athenaslab/gabia-sms-Django>`_
- Distribution: `<https://pypi.python.org/pypi/gabia-sms-Django>`_
- Maintainer: `<https://github.com/hwshim0810>`_

Installation
------------

You can install the library directly from pypi using pip:

.. code-block:: shell

    $ pip install gabia-sms-Django

Edit your settings.py file:

.. code-block:: python

     GABIA_SMS_SETTINGS = {
         'SENDER': 'YOUR NUMBER',
         'API_ID': 'YOUR API ID,
         'API_KEY': 'YOUR API KEY'
     }

Dependencies
------------

- Python 2.7 or 3.4+
- Django 1.11+

Quickstart
----------

Send sms message to use shortcut function

.. code-block:: python

    import gabia_sms

    try:
        # Send single SMS
        gabia_sms.send(message='message', receiver='will receive phone number')

    except SMSModuleException:
        print('SMS send failure')

- SMS Types: ['sms', 'lms', 'multi_sms', 'multi_lms']
- Send function returning Tuple(Unique key, Result code)

More usage
----------

.. code-block:: python

    import gabia_sms

    try:
        # Reserve single SMS
        gabia_sms.send(
            message='message',
            receiver='will receive phone number',
            scheduled_time='2018-02-02 22:22:22'
        )

        # if not assign scheduled_time, send immediately
        gabia_sms.send(
            message='message',
            receiver='will receive phone number'
        )

        # Send multiple SMS
        gabia_sms.send(message='message', receiver=['phone number', '...'])
        gabia_sms.send(message='message', receiver=('phone number', '...'))

        # Reserve multiple SMS
        gabia_sms.send(
            message='message',
            receiver=['phone number', '...'],
            scheduled_time='2018-02-02 22:22:22'
        )

        # Cancel reservation
        gabia_sms.cancel_reservation('Unique key', 'SMS type')

        # Request result code
        gabia_sms.get_send_result('Unique key')

    except SMSModuleException:
        print('SMS send failure')


Advanced usage
--------------
Inherit SMS class, override post_sent_sms / before_send_sms

.. code-block:: python

    import gabia_sms

    class AdvancedSMSModule(gabia_sms.GabiaSMS):

      def post_sms_sent(self, param, *args, **kwargs):
         # ... Do what you need

      def before_send_sms(self, param, *args, **kwargs):
         # ... Do what you need

    AdvancedSMSModule.send(message='message', receiver='will receive phone number')

or Use SingletonClass

.. code-block:: python

    import gabia_sms

    class AdvancedSMSModule(gabia_sms.SingletonGabiaSMS):
        # ...
        pass

Contributors
------------

See https://github.com/hwshim0810/gabia-sms-Django/graphs/contributors