コード例 #1
0
def test_fetch_returned_letters_from_notifications_and_notification_history(sample_letter_template):
    today = datetime.now()
    last_month = datetime.now() - timedelta(days=30)

    letter_1 = create_notification(template=sample_letter_template, client_reference='letter_1',
                                   status=NOTIFICATION_RETURNED_LETTER,
                                   created_at=datetime.utcnow() - timedelta(days=1))
    returned_letter_1 = create_returned_letter(service=sample_letter_template.service, reported_at=today,
                                               notification_id=letter_1.id)
    letter_2 = create_notification_history(template=sample_letter_template, client_reference='letter_2',
                                           status=NOTIFICATION_RETURNED_LETTER, created_at=datetime.utcnow())
    returned_letter_2 = create_returned_letter(service=sample_letter_template.service, reported_at=today,
                                               notification_id=letter_2.id)
    letter_3 = create_notification_history(template=sample_letter_template, client_reference='letter_3',
                                           status=NOTIFICATION_RETURNED_LETTER)
    create_returned_letter(service=sample_letter_template.service, reported_at=last_month,
                           notification_id=letter_3.id)

    results = fetch_returned_letters(service_id=sample_letter_template.service_id, report_date=today.date())

    assert len(results) == 2
    assert results[0] == (letter_2.id, returned_letter_2.reported_at, letter_2.client_reference, letter_2.created_at,
                          sample_letter_template.name, letter_2.template_id, letter_2.template_version, False, None,
                          None, None, None, None, None)
    assert results[1] == (letter_1.id, returned_letter_1.reported_at, letter_1.client_reference, letter_1.created_at,
                          sample_letter_template.name, letter_1.template_id, letter_1.template_version, False,
                          letter_1.api_key_id, None, None, None, None, None)
コード例 #2
0
def test_fetch_returned_letters_with_jobs(sample_letter_job):
    today = datetime.now()
    letter_1 = create_notification_history(template=sample_letter_job.template, client_reference='letter_1',
                                           status=NOTIFICATION_RETURNED_LETTER,
                                           job=sample_letter_job, job_row_number=20,
                                           created_at=datetime.utcnow() - timedelta(minutes=1))
    returned_letter_1 = create_returned_letter(service=sample_letter_job.service, reported_at=today,
                                               notification_id=letter_1.id)

    results = fetch_returned_letters(service_id=sample_letter_job.service_id, report_date=today.date())
    assert len(results) == 1
    assert results[0] == (letter_1.id, returned_letter_1.reported_at, letter_1.client_reference, letter_1.created_at,
                          sample_letter_job.template.name, letter_1.template_id, letter_1.template_version, False, None,
                          None, None, None, sample_letter_job.original_file_name, 21)
コード例 #3
0
def test_fetch_returned_letters_with_create_by_user(sample_letter_template):
    today = datetime.now()
    letter_1 = create_notification_history(template=sample_letter_template, client_reference='letter_1',
                                           status=NOTIFICATION_RETURNED_LETTER,
                                           created_at=datetime.utcnow() - timedelta(minutes=1),
                                           created_by_id=sample_letter_template.service.users[0].id)
    returned_letter_1 = create_returned_letter(service=sample_letter_template.service, reported_at=today,
                                               notification_id=letter_1.id)

    results = fetch_returned_letters(service_id=sample_letter_template.service_id, report_date=today.date())
    assert len(results) == 1
    assert results[0] == (letter_1.id, returned_letter_1.reported_at, letter_1.client_reference, letter_1.created_at,
                          sample_letter_template.name, letter_1.template_id, letter_1.template_version, False, None,
                          letter_1.created_by_id, sample_letter_template.service.users[0].name,
                          sample_letter_template.service.users[0].email_address, None, None)
コード例 #4
0
ファイル: rest.py プロジェクト: Djuka/notifications-api-1
def get_returned_letters(service_id):
    results = fetch_returned_letters(service_id=service_id, report_date=request.args.get('reported_at'))

    json_results = [
        {'notification_id': x.notification_id,
         # client reference can only be added on API letters
         'client_reference': x.client_reference if x.api_key_id else None,
         'reported_at': x.reported_at.strftime(DATE_FORMAT),
         'created_at': x.created_at.strftime(DATETIME_FORMAT_NO_TIMEZONE),
         # it doesn't make sense to show hidden/precompiled templates
         'template_name': x.template_name if not x.hidden else None,
         'template_id': x.template_id if not x.hidden else None,
         'template_version': x.template_version if not x.hidden else None,
         'user_name': x.user_name or 'API',
         'email_address': x.email_address or 'API',
         'original_file_name': x.original_file_name,
         'job_row_number': x.job_row_number,
         # the file name for a letter uploaded via the UI
         'uploaded_letter_file_name': x.client_reference if x.hidden and not x.api_key_id else None
         } for x in results]

    return jsonify(sorted(json_results, key=lambda i: i['created_at'], reverse=True))