from zope.interface import implements import pgasync import itodo class Todos(object): implements(itodo.ITodos) def __init__(self, dbname, user, password, host): self.original = pgasync.ConnectionPool("pgasync", dbname=dbname, user=user, password=password, host=host) def add(self, description, done): query = "INSERT INTO todos (description, done) VALUES (%(description)s,%(done)s)" args = dict(description=description, done=done) return self.original.runOperation(query, args) def delete(self, id): query="DELETE FROM todos WHERE id=%(id)s" args = dict(id=id) return self.original.runOperation(query, args) def update(self, id, state): query = "UPDATE todos SET done=%(done)s WHERE id=%(id)s" args = dict(id=id, done=state) return self.original.runOperation(query, args) def findAll(self): query = "SELECT * FROM todos" return self.original.runQuery(query)