Advertisement
Guest User

Untitled

a guest
Oct 7th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. import postgresql
  2. import sys
  3. from random import randint
  4.  
  5.  
  6. class DataBase:
  7. def __init__(self):
  8. self.db = postgresql.open('pq://localhost/postgres')
  9. self.query_login = self.db.prepare(
  10. 'SELECT * FROM users WHERE email = $1 AND password = $2;'
  11. )
  12. self.query_create_token = self.db.prepare(
  13. 'INSERT INTO tokens (user_id, access_token) VALUES ('
  14. "$1, $2"
  15. ');'
  16. )
  17. self.query_create_user = self.db.prepare(
  18. 'INSERT INTO users(email, password, name, description) VALUES('
  19. "$1, $2, $3, $4"
  20. ');'
  21. )
  22. self.query_check_token_and_return_userid = self.db.prepare(
  23. 'SELECT user_id FROM tokens WHERE access_token = $1;'
  24. )
  25. self.query_get_recipes = self.db.prepare(
  26. 'SELECT * FROM recipes ORDER BY likes DESC;'
  27. )
  28.  
  29. def login(self, email, password):
  30. result_login = self.query_login(email, password)
  31. if len(result_login) == 1:
  32. token = str(randint(0, 10000))
  33. self.query_create_token(result_login[0][0], token)
  34. return token
  35. else:
  36. return False
  37.  
  38. def create_user(self, email, password, name, description):
  39. self.query_create_user(email, password, name, description)
  40.  
  41. def check_token(self, token):
  42. result = self.query_check_token_and_return_userid(token)
  43.  
  44. if len(result) == 0:
  45. return False
  46.  
  47. return self.query_check_token_and_return_userid(token)[0][0]
  48.  
  49. def get_recipes(self, token):
  50. result_check_token = self.check_token(token)
  51.  
  52. if result_check_token is False:
  53. print('Token inválido!')
  54. exit()
  55.  
  56. result_recipes = self.query_get_recipes()
  57.  
  58. for i in result_recipes:
  59. print(i)
  60.  
  61. return self.query_get_recipes()
  62.  
  63.  
  64. class Recipe:
  65. def __init__(self, name, difficulty, portions, prepareTime, likes, dislikes, description, user_id):
  66. self.name = name
  67. self.difficulty = difficulty
  68. self.portions = portions
  69. self.prepareTime = prepareTime
  70. self.likes = likes
  71. self.dislikes = dislikes
  72. self.description = description
  73. self.user_id = user_id
  74.  
  75.  
  76. db = DataBase()
  77.  
  78. args = sys.argv
  79.  
  80. if len(args) < 2:
  81. print('Erro: Informe ao menos um argumento!')
  82. exit()
  83.  
  84.  
  85. if args[1] == 'login':
  86. if len(args) < 3:
  87. print('Erro: Informe o usuário e senha para logar')
  88. exit()
  89.  
  90. print('token de login:', db.login(args[2], args[3]))
  91. elif args[1] == 'create_account':
  92. if len(args) < 5:
  93. print('Erro: Informe o usuário, senha, nome e descrição para a conta em que deseja criar')
  94. exit()
  95.  
  96. db.create_user(args[2], args[3], args[4], args[5])
  97. print('Usuário criado')
  98. elif args[2] == 'recipes_list':
  99. if len(args) < 2:
  100. print('Erro: Informe o seu token de login')
  101. exit()
  102.  
  103. db.get_recipes(args[2])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement