Advertisement
Guest User

Untitled

a guest
Jul 30th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from database import init_db
  2. from database import session
  3. from models import Document, User
  4. from conv import trans
  5. from sqlalchemy import desc
  6.  
  7. def create_document(title, content, meta, creator):
  8.     """
  9.    Creates a new document
  10.    """
  11.     if Document.query.filter(Document.title == title).first() != None:
  12.         return False
  13.  
  14.     doc = Document(title, content, meta, creator)
  15.  
  16.  
  17.  
  18.     session.add(doc)
  19.     session.commit()
  20.     return True
  21.  
  22. def delete_document(url):
  23.     try:
  24.         Document.query.filter(Document.url == url).delete()
  25.         session.commit()
  26.         return 'true'
  27.     except:
  28.         return 'Delete Failed'
  29.  
  30. def update_document(url, title, content, meta):
  31.  
  32.     doc = Document.query.filter(Document.url == url).first()
  33.     if doc == None:
  34.         return False
  35.  
  36.     doc.title = title
  37.     doc.content = content
  38.     doc.meta = meta
  39.     doc.url = title.lower().translate(trans)
  40.     session.commit()
  41.     return doc.url
  42.  
  43. def pages():
  44.     """
  45.    Generator that yields all numbered entries in the database
  46.    """
  47.    
  48.     num = 1
  49.     rows = 0
  50.     if num == 1:
  51.         rows += Document.query.count()
  52.  
  53.     while num <= rows:
  54.         while Document.query.get(num) == None:
  55.             rows += 1
  56.             num +=1
  57.         yield Document.query.get(num)
  58.         num += 1
  59.  
  60. def page_list():
  61.     return Document.query.order_by(Document.date.desc()).all()
  62.  
  63. def get_by_creator(name):
  64.     return Document.query.order_by(Document.date.desc()).filter(Document.creator == name).all()
  65.  
  66. def get_by_url(url, content):
  67.     doc = Document.query.filter(Document.url == url).first()
  68.  
  69.     return doc.to_dict(content)
  70.  
  71. def create_user(name, password):
  72.  
  73.     if User.query.filter(User.name == name).first() != None:
  74.         return False
  75.  
  76.     user = User(name, password)
  77.  
  78.     session.add(user)
  79.     session.commit()
  80.  
  81.     return True
  82.  
  83. def get_user(name):
  84.     user = User.query.filter(User.name == name).first()
  85.  
  86.     return user
  87.  
  88. def users():
  89.     """
  90.    Generator that yields all numbered entries in the database
  91.    """
  92.  
  93.     num = 1
  94.     rows = 0
  95.     if num == 1:
  96.         rows += User.query.count()
  97.  
  98.     while num <= rows:
  99.         while User.query.get(num) == None:
  100.             rows += 1
  101.             num +=1
  102.         yield User.query.get(num).name
  103.         num += 1
  104.  
  105. def user_list():
  106.     return list(users())
  107.  
  108. def delete_user(name, password):
  109.     if User.query.filter(User.name == name).first() == None:
  110.         return False
  111.  
  112.     q = User.query.filter(User.name == name)
  113.     user = q.first()
  114.     if user.check_password(password):
  115.         q.delete()
  116.         session.commit()
  117.         return True
  118.     else:
  119.         return False
  120.  
  121. def update_user_password(name, password):
  122.     user = User.query.filter(User.name == name).first()
  123.     if user.check_password(password):
  124.         user.hash = user.store_hash(password)
  125.         return True
  126.     else:
  127.         return False
  128.  
  129. def commit():
  130.     session.commit()
  131.  
  132.  
  133. def test_data():
  134.     for i in range(1, 10):
  135.         create_document(str(i)+'  '+str(i), str(i), {'num': i})
  136.  
  137.  
  138. def test_get():
  139.     for i in Document.query.all():
  140.         print(get_by_url(i.url, content=1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement