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):
|
|
|
|
|
return Service.query.filter_by(id=service_id).first()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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):
|
|
|
|
|
return Service.query.filter(Service.users.any(id=user_id)).filter_by(id=service_id).first()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
# Proper clean up
|
|
|
|
|
db.session.rollback()
|
|
|
|
|
raise e
|
2016-02-19 15:53:15 +00:00
|
|
|
db.session.add(service)
|
2016-01-07 17:31:17 +00:00
|
|
|
db.session.commit()
|
|
|
|
|
|
|
|
|
|
|
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):
|
|
|
|
|
service.users.remove(user)
|
|
|
|
|
db.session.add(service)
|
|
|
|
|
db.session.commit()
|