mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-28 03:11:40 -05:00
Added an endpoint to get letter-branding by id.
This commit is contained in:
@@ -3,6 +3,10 @@ from app.dao.dao_utils import transactional
|
||||
from app.models import LetterBranding
|
||||
|
||||
|
||||
def dao_get_letter_branding_by_id(letter_branding_id):
|
||||
return LetterBranding.query.filter(LetterBranding.id == letter_branding_id).one()
|
||||
|
||||
|
||||
def dao_get_letter_branding_by_domain(domain):
|
||||
return LetterBranding.query.filter(
|
||||
LetterBranding.domain == domain
|
||||
|
||||
@@ -5,7 +5,8 @@ from flask import Blueprint, jsonify, request
|
||||
|
||||
from app.dao.letter_branding_dao import (
|
||||
dao_get_all_letter_branding, dao_create_letter_branding,
|
||||
dao_update_letter_branding
|
||||
dao_update_letter_branding,
|
||||
dao_get_letter_branding_by_id
|
||||
)
|
||||
from app.errors import register_errors
|
||||
from app.letter_branding.letter_branding_schema import post_letter_branding_schema
|
||||
@@ -53,6 +54,13 @@ def get_all_letter_brands():
|
||||
return jsonify([lb.serialize() for lb in letter_brands])
|
||||
|
||||
|
||||
@letter_branding_blueprint.route('/<uuid:letter_branding_id>', methods=['GET'])
|
||||
def get_letter_brand_by_id(letter_branding_id):
|
||||
letter_branding = dao_get_letter_branding_by_id(letter_branding_id)
|
||||
|
||||
return jsonify(letter_branding.serialize()), 200
|
||||
|
||||
|
||||
@letter_branding_blueprint.route('', methods=['POST'])
|
||||
def create_letter_brand():
|
||||
data = request.get_json()
|
||||
|
||||
@@ -1,13 +1,31 @@
|
||||
import uuid
|
||||
|
||||
import pytest
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
from app.dao.letter_branding_dao import (
|
||||
dao_get_letter_branding_by_domain,
|
||||
dao_get_all_letter_branding,
|
||||
dao_create_letter_branding,
|
||||
dao_update_letter_branding
|
||||
dao_update_letter_branding,
|
||||
dao_get_letter_branding_by_id
|
||||
)
|
||||
from app.models import LetterBranding
|
||||
from tests.app.db import create_letter_branding
|
||||
|
||||
|
||||
def test_dao_get_letter_branding_by_id(notify_db_session):
|
||||
letter_branding = create_letter_branding()
|
||||
result = dao_get_letter_branding_by_id(letter_branding.id)
|
||||
|
||||
assert result == letter_branding
|
||||
|
||||
|
||||
def test_dao_get_letter_brand_by_id_raises_exception_if_does_not_exist(notify_db_session):
|
||||
with pytest.raises(expected_exception=SQLAlchemyError):
|
||||
dao_get_letter_branding_by_id(uuid.uuid4())
|
||||
|
||||
|
||||
def test_dao_get_letter_branding_by_domain_returns_none_if_no_matching_domains(notify_db_session):
|
||||
result = dao_get_letter_branding_by_domain(domain="test.domain")
|
||||
assert not result
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import json
|
||||
|
||||
import uuid
|
||||
|
||||
from app.models import LetterBranding
|
||||
from tests import create_authorization_header
|
||||
@@ -24,6 +24,22 @@ def test_get_all_letter_brands(client, notify_db_session):
|
||||
assert False
|
||||
|
||||
|
||||
def test_get_letter_branding_by_id(client, notify_db_session):
|
||||
hm_gov = create_letter_branding()
|
||||
create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
)
|
||||
response = client.get('/letter-branding/{}'.format(hm_gov.id), headers=[create_authorization_header()])
|
||||
|
||||
assert response.status_code == 200
|
||||
assert json.loads(response.get_data(as_text=True)) == hm_gov.serialize()
|
||||
|
||||
|
||||
def test_get_letter_branding_by_id_returns_404_if_does_not_exist(client, notify_db_session):
|
||||
response = client.get('/letter-branding/{}'.format(uuid.uuid4()), headers=[create_authorization_header()])
|
||||
assert response.status_code == 404
|
||||
|
||||
|
||||
def test_create_letter_branding(client, notify_db_session):
|
||||
form = {
|
||||
'name': 'super brand',
|
||||
|
||||
Reference in New Issue
Block a user