2016-01-07 17:31:17 +00:00
|
|
|
from app import db
|
2016-02-19 15:53:15 +00:00
|
|
|
from app.models import Service
|
|
|
|
|
from sqlalchemy import asc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dao_fetch_all_services():
|
|
|
|
|
return Service.query.order_by(asc(Service.created_at)).all()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dao_fetch_service_by_id(service_id):
|
2016-03-11 12:39:55 +00:00
|
|
|
return Service.query.filter_by(id=service_id).one()
|
2016-02-19 15:53:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def dao_fetch_all_services_by_user(user_id):
|
|
|
|
|
return Service.query.filter(Service.users.any(id=user_id)).order_by(asc(Service.created_at)).all()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dao_fetch_service_by_id_and_user(service_id, user_id):
|
2016-03-11 15:34:20 +00:00
|
|
|
return Service.query.filter(Service.users.any(id=user_id)).filter_by(id=service_id).one()
|
2016-02-19 15:53:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def dao_create_service(service, user):
|
2016-02-26 17:11:30 +00:00
|
|
|
try:
|
|
|
|
|
from app.dao.permissions_dao import permission_dao
|
|
|
|
|
service.users.append(user)
|
|
|
|
|
permission_dao.add_default_service_permissions_for_user(user, service)
|
2016-02-29 11:50:43 +00:00
|
|
|
db.session.add(service)
|
2016-02-26 17:11:30 +00:00
|
|
|
except Exception as e:
|
|
|
|
|
# Proper clean up
|
|
|
|
|
db.session.rollback()
|
|
|
|
|
raise e
|
2016-02-29 11:50:43 +00:00
|
|
|
else:
|
|
|
|
|
db.session.commit()
|
2016-01-07 17:31:17 +00:00
|
|
|
|
|
|
|
|
|
2016-02-19 15:53:15 +00:00
|
|
|
def dao_update_service(service):
|
|
|
|
|
db.session.add(service)
|
2016-01-12 10:39:49 +00:00
|
|
|
db.session.commit()
|
|
|
|
|
|
|
|
|
|
|
2016-02-19 15:53:15 +00:00
|
|
|
def dao_add_user_to_service(service, user):
|
|
|
|
|
service.users.append(user)
|
|
|
|
|
db.session.add(service)
|
|
|
|
|
db.session.commit()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dao_remove_user_from_service(service, user):
|
2016-03-22 13:14:23 +00:00
|
|
|
try:
|
|
|
|
|
from app.dao.permissions_dao import permission_dao
|
|
|
|
|
permission_dao.remove_user_service_permissions(user, service)
|
|
|
|
|
service.users.remove(user)
|
|
|
|
|
db.session.add(service)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
# Proper clean up
|
|
|
|
|
db.session.rollback()
|
|
|
|
|
raise e
|
|
|
|
|
else:
|
|
|
|
|
db.session.commit()
|