def dao_create_notification(notification): if not notification.id: # need to populate defaulted fields before we create the notification history object notification.id = create_uuid() if not notification.status: notification.status = NOTIFICATION_CREATED db.session.add(notification) if _should_record_notification_in_history_table(notification): db.session.add(NotificationHistory.from_original(notification))
def sample_notification_history( notify_db, notify_db_session, sample_template, status="created", created_at=None, notification_type=None, key_type=KEY_TYPE_NORMAL, sent_at=None, api_key=None, ): if created_at is None: created_at = datetime.utcnow() if sent_at is None: sent_at = datetime.utcnow() if notification_type is None: notification_type = sample_template.template_type if not api_key: api_key = create_api_key(sample_template.service, key_type=key_type) notification_history = NotificationHistory( id=uuid.uuid4(), service=sample_template.service, template_id=sample_template.id, template_version=sample_template.version, status=status, created_at=created_at, notification_type=notification_type, key_type=key_type, api_key=api_key, api_key_id=api_key and api_key.id, sent_at=sent_at, ) notify_db.session.add(notification_history) notify_db.session.commit() return notification_history
def sample_notification_history(notify_db, notify_db_session, sample_template): created_at = datetime.utcnow() sent_at = datetime.utcnow() notification_type = sample_template.template_type api_key = create_api_key(sample_template.service, key_type=KEY_TYPE_NORMAL) notification_history = NotificationHistory( id=uuid.uuid4(), service=sample_template.service, template_id=sample_template.id, template_version=sample_template.version, status='created', created_at=created_at, notification_type=notification_type, key_type=KEY_TYPE_NORMAL, api_key=api_key, api_key_id=api_key and api_key.id, sent_at=sent_at) notify_db.session.add(notification_history) notify_db.session.commit() return notification_history
def noti_hist(notify_db, template, status='delivered', billable_units=None, key_type=KEY_TYPE_NORMAL): if not billable_units and template.template_type == 'sms': billable_units = 1 notification_history = NotificationHistory( id=uuid.uuid4(), service=template.service, template_id=template.id, template_version=template.version, status=status, created_at=datetime.utcnow(), billable_units=billable_units, notification_type=template.template_type, key_type=key_type) notify_db.session.add(notification_history) notify_db.session.commit() return notification_history
def create_notification_history( template=None, job=None, job_row_number=None, status='created', reference=None, created_at=None, sent_at=None, updated_at=None, billable_units=1, api_key=None, key_type=KEY_TYPE_NORMAL, sent_by=None, client_reference=None, rate_multiplier=None, international=False, phone_prefix=None, created_by_id=None, postage=None ): assert job or template if job: template = job.template if created_at is None: created_at = datetime.utcnow() if status != 'created': sent_at = sent_at or datetime.utcnow() updated_at = updated_at or datetime.utcnow() if template.template_type == 'letter' and postage is None: postage = 'second' data = { 'id': uuid.uuid4(), 'job_id': job and job.id, 'job': job, 'service_id': template.service.id, 'service': template.service, 'template_id': template.id, 'template_version': template.version, 'status': status, 'reference': reference, 'created_at': created_at, 'sent_at': sent_at, 'billable_units': billable_units, 'notification_type': template.template_type, 'api_key': api_key, 'api_key_id': api_key and api_key.id, 'key_type': api_key.key_type if api_key else key_type, 'sent_by': sent_by, 'updated_at': updated_at, 'client_reference': client_reference, 'job_row_number': job_row_number, 'rate_multiplier': rate_multiplier, 'international': international, 'phone_prefix': phone_prefix, 'created_by_id': created_by_id, 'postage': postage } notification_history = NotificationHistory(**data) db.session.add(notification_history) db.session.commit() return notification_history
def create_notification_history( template=None, job=None, job_row_number=None, status="created", reference=None, created_at=None, sent_at=None, updated_at=None, billable_units=1, api_key=None, key_type=KEY_TYPE_NORMAL, sent_by=None, client_reference=None, rate_multiplier=None, international=False, phone_prefix=None, created_by_id=None, postage=None, ): assert job or template if job: template = job.template if created_at is None: created_at = datetime.utcnow() if status != "created": sent_at = sent_at or datetime.utcnow() updated_at = updated_at or datetime.utcnow() if template.template_type == "letter" and postage is None: postage = "second" data = { "id": uuid.uuid4(), "job_id": job and job.id, "job": job, "service_id": template.service.id, "service": template.service, "template_id": template.id, "template_version": template.version, "status": status, "reference": reference, "created_at": created_at, "sent_at": sent_at, "billable_units": billable_units, "notification_type": template.template_type, "api_key": api_key, "api_key_id": api_key and api_key.id, "key_type": api_key.key_type if api_key else key_type, "sent_by": sent_by, "updated_at": updated_at, "client_reference": client_reference, "job_row_number": job_row_number, "rate_multiplier": rate_multiplier, "international": international, "phone_prefix": phone_prefix, "created_by_id": created_by_id, "postage": postage, } notification_history = NotificationHistory(**data) db.session.add(notification_history) db.session.commit() return notification_history