mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 02:11:11 -05:00
Merged with master.
This commit is contained in:
@@ -31,5 +31,5 @@ def get_model_templates(template_id=None, service_id=None):
|
||||
elif template_id:
|
||||
return Template.query.filter_by(id=template_id).one()
|
||||
elif service_id:
|
||||
return Template.query.filter_by(service=Service.query.get(service_id)).one()
|
||||
return Template.query.filter_by(service=Service.query.get(service_id)).all()
|
||||
return Template.query.all()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from sqlalchemy import UniqueConstraint
|
||||
|
||||
from . import db
|
||||
import datetime
|
||||
|
||||
from sqlalchemy.dialects.postgresql import UUID
|
||||
from app.encryption import (
|
||||
hashpw,
|
||||
@@ -95,6 +96,10 @@ class ApiKey(db.Model):
|
||||
service = db.relationship('Service', backref=db.backref('api_keys', lazy='dynamic'))
|
||||
expiry_date = db.Column(db.DateTime)
|
||||
|
||||
__table_args__ = (
|
||||
UniqueConstraint('service_id', 'name', name='uix_service_to_key_name'),
|
||||
)
|
||||
|
||||
|
||||
TEMPLATE_TYPES = ['sms', 'email', 'letter']
|
||||
|
||||
@@ -123,7 +128,6 @@ class Template(db.Model):
|
||||
|
||||
|
||||
class Job(db.Model):
|
||||
|
||||
__tablename__ = 'jobs'
|
||||
|
||||
id = db.Column(UUID(as_uuid=True), primary_key=True)
|
||||
|
||||
@@ -13,7 +13,7 @@ from app.dao.templates_dao import (
|
||||
from app.dao.api_key_dao import (save_model_api_key, get_model_api_keys, get_unsigned_secret)
|
||||
from app.models import ApiKey
|
||||
from app.schemas import (
|
||||
services_schema, service_schema, template_schema, api_keys_schema)
|
||||
services_schema, service_schema, template_schema, templates_schema, api_keys_schema)
|
||||
|
||||
from flask import Blueprint
|
||||
service = Blueprint('service', __name__)
|
||||
@@ -65,8 +65,9 @@ def update_service(service_id):
|
||||
@service.route('/<int:service_id>', methods=['GET'])
|
||||
@service.route('', methods=['GET'])
|
||||
def get_service(service_id=None):
|
||||
user_id = request.args.get('user_id', None)
|
||||
try:
|
||||
services = get_model_services(service_id=service_id)
|
||||
services = get_model_services(service_id=service_id, user_id=user_id)
|
||||
except DataError:
|
||||
return jsonify(result="error", message="Invalid service id"), 400
|
||||
except NoResultFound:
|
||||
@@ -183,3 +184,21 @@ def update_template(service_id, template_id):
|
||||
except DAOException as e:
|
||||
return jsonify(result="error", message=str(e)), 400
|
||||
return jsonify(data=template_schema.dump(template).data), status_code
|
||||
|
||||
|
||||
@service.route('/<int:service_id>/template/<int:template_id>', methods=['GET'])
|
||||
@service.route('/<int:service_id>/template', methods=['GET'])
|
||||
def get_service_template(service_id, template_id=None):
|
||||
try:
|
||||
templates = get_model_templates(service_id=service_id, template_id=template_id)
|
||||
except DataError:
|
||||
return jsonify(result="error", message="Invalid template id"), 400
|
||||
except NoResultFound:
|
||||
return jsonify(result="error", message="Template not found"), 404
|
||||
if isinstance(templates, list):
|
||||
data, errors = templates_schema.dump(templates)
|
||||
else:
|
||||
data, errors = template_schema.dump(templates)
|
||||
if errors:
|
||||
return jsonify(result="error", message=str(errors))
|
||||
return jsonify(data=data)
|
||||
|
||||
@@ -137,7 +137,7 @@ def send_user_code(user_id):
|
||||
|
||||
|
||||
@user.route('/<int:user_id>', methods=['GET'])
|
||||
@user.route('/', methods=['GET'])
|
||||
@user.route('', methods=['GET'])
|
||||
def get_user(user_id=None):
|
||||
try:
|
||||
users = get_model_users(user_id=user_id)
|
||||
|
||||
Reference in New Issue
Block a user