def sender(): """Render show senders/ add sender page.""" add_sender_form = forms.AddSenderForm() if add_sender_form.validate_on_submit(): number = utils.normalize_number(add_sender_form.sender_number.data) try: sender_repo.create_one(number=number) # check for numbers with no sender_id sender = sender_repo.get_min_sender() numbers = number_repo.get_many_by_kwargs(sender_id=None) for number in numbers: number.sender_id = sender.id db.session.add(number) db.session.commit() flash('Sender added!', 'success') except DuplicateError as e: flash('Sender already exists!', 'error') print e pass # reset form add_sender_form.sender_number.data = None senders = sender_repo.get_all() return render_template('sender.html', senders=senders, add_sender_form=add_sender_form)
def subscription_view(sub_id): """Render all numbers in given subscription.""" subscription = subscription_repo.get_by_id(sub_id) if subscription == None: flash('Subscription does not exist!', 'error') return redirect('/') numbers = number_repo.get_many_by_kwargs(subscription_id=sub_id) return render_template('subscription_views.html', numbers=numbers)
def sender_views(sender_id): """Render all numbers associated with given sender.""" sender = sender_repo.get_by_id(sender_id) if sender == None: flash('Sender does not exist!', 'error') return redirect('/') numbers = number_repo.get_many_by_kwargs(sender_id=sender_id) return render_template('sender_views.html', numbers=numbers)
def subscription_view(sub_id): """Render all numbers in given subscription.""" subscription = subscription_repo.get_by_id(sub_id) if subscription == None: flash('Subscription does not exist!', 'error') return redirect('/') numbers = number_repo.get_many_by_kwargs( subscription_id=sub_id ) return render_template( 'subscription_views.html', numbers=numbers )
def sender_views(sender_id): """Render all numbers associated with given sender.""" sender = sender_repo.get_by_id(sender_id) if sender == None: flash('Sender does not exist!', 'error') return redirect('/') numbers = number_repo.get_many_by_kwargs( sender_id=sender_id ) return render_template( 'sender_views.html', numbers=numbers )
def send_to_subscription_async(message_id, subscription_id, message_text): """Schedules a message to be sent at a later time by a Celery task.""" senders = sender_repo.get_all() twilio_dispatcher = TwilioDispatcher() for sender in senders: numbers = number_repo.get_many_by_kwargs( subscription_id=subscription_id, sender_id=sender.id ) for number in numbers: try: twilio_dispatcher.send_to_number(number.number, message_text) except (TwilioRestException, NotFoundError) as e: pass # update message entity's sent_at message_repo.update_by_id(message_id, sent_at=datetime.utcnow())
def send_to_subscription(self, message): """Send one message to every number in a subscription.""" senders = sender_repo.get_all() failed = {} for sender in senders: # get numbers associated with each sender # and has given subscription_id numbers = number_repo.get_many_by_kwargs( subscription_id=message.subscription_id, sender_id=sender.id ) for number in numbers: try: self.send_to_number(number.number, message.text) except (TwilioRestException, NotFoundError) as e: failed[number.number] = str(e) pass return failed
def sender(): """Render show senders/ add sender page.""" add_sender_form = forms.AddSenderForm() if add_sender_form.validate_on_submit(): number = utils.normalize_number(add_sender_form.sender_number.data) try: sender_repo.create_one( number=number ) # check for numbers with no sender_id sender = sender_repo.get_min_sender() numbers = number_repo.get_many_by_kwargs( sender_id=None ) for number in numbers: number.sender_id = sender.id db.session.add(number) db.session.commit() flash('Sender added!', 'success') except DuplicateError as e: flash('Sender already exists!', 'error') print e pass # reset form add_sender_form.sender_number.data = None senders = sender_repo.get_all() return render_template( 'sender.html', senders=senders, add_sender_form=add_sender_form )