Skip to content

Instantly share code, notes, and snippets.

@blaflamme
Created January 27, 2017 03:25
Show Gist options
  • Select an option

  • Save blaflamme/828d234da0b00a750583239f985bf29a to your computer and use it in GitHub Desktop.

Select an option

Save blaflamme/828d234da0b00a750583239f985bf29a to your computer and use it in GitHub Desktop.
from .app import App
from .db import get_dbsession
from .models import User
@App.method(App.dbsession)
def app_dbsession(app):
return get_dbsession(app.settings.sqlalchemy.__dict__)
class UserService(object):
def __init__(self, dbsession):
self.dbsession = dbsession
def all(self):
return self.dbsession.query(User).all()
def by_id(self, id):
return self.dbsession.query(User)\
.filter(User.id == id)\
.first()
def by_username(self, username):
return self.dbsession.query(User)\
.filter(User.username == username)\
.first()
def by_email(self, email):
return self.dbsession.query(User)\
.filter(User.email == email)\
.first()
def add(self, username, email):
user = User(
username=username,
email=email
)
self.dbsession.add(user)
self.dbsession.flush()
return user
def delete(self, user):
self.dbsession.delete(user)
@App.method(App.service, name='user')
def user_service(app, name):
dbsession = app.dbsession()
return UserService(dbsession=dbsession)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment