mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-12 00:02:36 -05:00
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
|
|
from datetime import datetime
|
||
|
|
from decimal import Decimal
|
||
|
|
from flask.ext.script import Command, Manager, Option
|
||
|
|
from app.models import PROVIDERS
|
||
|
|
from app.dao.provider_rates_dao import create_provider_rates
|
||
|
|
|
||
|
|
|
||
|
|
class CreateProviderRateCommand(Command):
|
||
|
|
|
||
|
|
option_list = (
|
||
|
|
Option('-p', '--provider_name', dest="provider_name", help='Provider name'),
|
||
|
|
Option('-c', '--cost', dest="cost", help='Cost (pence) per message including decimals'),
|
||
|
|
Option('-d', '--valid_from', dest="valid_from", help="Date (%Y-%m-%dT%H:%M:%S) valid from")
|
||
|
|
)
|
||
|
|
|
||
|
|
def run(self, provider_name, cost, valid_from):
|
||
|
|
if provider_name not in PROVIDERS:
|
||
|
|
raise Exception("Invalid provider name, must be one of ({})".format(', '.join(PROVIDERS)))
|
||
|
|
|
||
|
|
try:
|
||
|
|
cost = Decimal(cost)
|
||
|
|
except:
|
||
|
|
raise Exception("Invalid cost value.")
|
||
|
|
|
||
|
|
try:
|
||
|
|
valid_from = datetime.strptime('%Y-%m-%dT%H:%M:%S', valid_from)
|
||
|
|
except:
|
||
|
|
raise Exception("Invalid valid_from date. Use the format %Y-%m-%dT%H:%M:%S")
|
||
|
|
|
||
|
|
create_provider_rates(provider_name, valid_from, cost)
|