#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: ai ts=4 sts=4 et sw=4 nu

from __future__ import (unicode_literals, absolute_import,
                        division, print_function)
import sys
import os
import datetime

from rapidpro_controller import (get_logger, log_success, log_failure,
                                 THIS_SERVER, SMS_ALERTS_TO)
from rapidpro_controller.sms import send_sms_to

logger = get_logger(os.path.basename(__file__))


def main(args):
    default_message = "[SMS-TEST] on {srv} at {date}".format(
        srv=THIS_SERVER, date=datetime.datetime.now())
    message = " ".join(args) if len(args) else default_message

    logger.info("sending following test SMS to {} recipients."
                .format(len(SMS_ALERTS_TO)))

    failures = []
    for recipient in SMS_ALERTS_TO:
        logger.info(". sending to: {}".format(recipient))
        if send_sms_to(message, recipient):
            log_success(logger)
        else:
            failures.append(recipient)
            log_failure(logger)

    successful = len(failures) == 0

    if not successful:
        logger.error("Failed to send SMS to: {}" .format(",".join(failures)))
    else:
        logger.info("Successfuly sent SMS to all recipients")

    return 0 if successful else 1


if __name__ == '__main__':
    sys.exit(main(sys.argv[1:]))
