Merged with master.

This commit is contained in:
Nicholas Staples
2016-01-22 14:46:03 +00:00
9 changed files with 177 additions and 12 deletions

View File

@@ -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()

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)