# -*- coding: utf-8 -*- from ircb.models import get_session, Network, Channel from ircb.lib.constants.signals import ( STORE_CHANNEL_CREATE, STORE_CHANNEL_CREATED, STORE_CHANNEL_GET, STORE_CHANNEL_GOT, STORE_CHANNEL_UPDATE, STORE_CHANNEL_UPDATED, STORE_CHANNEL_DELETE, STORE_CHANNEL_DELETED, STORE_CHANNEL_CREATE_OR_UPDATE, STORE_CHANNEL_CREATE_OR_UPDATE_ERROR) from ircb.stores.base import BaseStore session = get_session() class ChannelStore(BaseStore): CREATE_SIGNAL = STORE_CHANNEL_CREATE CREATED_SIGNAL = STORE_CHANNEL_CREATED GET_SIGNAL = STORE_CHANNEL_GET GOT_SIGNAL = STORE_CHANNEL_GOT UPDATE_SIGNAL = STORE_CHANNEL_UPDATE UPDATED_SIGNAL = STORE_CHANNEL_UPDATED DELETE_SIGNAL = STORE_CHANNEL_DELETE DELETED_SIGNAL = STORE_CHANNEL_DELETED CREATE_OR_UPDATE = STORE_CHANNEL_CREATE_OR_UPDATE CREATE_OR_UPDATE_ERROR = STORE_CHANNEL_CREATE_OR_UPDATE_ERROR @classmethod def get(cls, filter=None, order_by=None, limit=None, sort=None): qs = session.query(Channel) if filter: for key, value in filter.items(): qs = qs.filter(getattr(Channel, key) == value)
from flask import Flask from ircb.config import settings from ircb.models import get_session, create_tables app = Flask(__name__) if __name__ == '__main__': create_tables() session = get_session(settings.DB_URI) app.run()
# -*- coding: utf-8 -*- from ircb.models import Client, Network, get_session from ircb.lib.constants.signals import (STORE_CLIENT_CREATE, STORE_CLIENT_CREATED, STORE_CLIENT_DELETE, STORE_CLIENT_DELETED) from ircb.stores.base import BaseStore session = get_session() class ClientStore(BaseStore): CREATE_SIGNAL = STORE_CLIENT_CREATE CREATED_SIGNAL = STORE_CLIENT_CREATED DELETE_SIGNAL = STORE_CLIENT_DELETE DELETED_SIGNAL = STORE_CLIENT_DELETED @classmethod def create(cls, socket, network_id, user_id): network = session.query(Network).filter( Network.id == network_id, Network.user_id == user_id).one() client = Client( socket=socket, network_id=network_id, user_id=user_id) session.add(client) session.commit() return client @classmethod def delete(cls, id): client = session.query(Client).get(id)