Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import postgresql
- import sys
- from random import randint
- class DataBase:
- def __init__(self):
- self.db = postgresql.open('pq://localhost/postgres')
- self.query_login = self.db.prepare(
- 'SELECT * FROM users WHERE email = $1 AND password = $2;'
- )
- self.query_create_token = self.db.prepare(
- 'INSERT INTO tokens (user_id, access_token) VALUES ('
- "$1, $2"
- ');'
- )
- self.query_create_user = self.db.prepare(
- 'INSERT INTO users(email, password, name, description) VALUES('
- "$1, $2, $3, $4"
- ');'
- )
- self.query_check_token_and_return_userid = self.db.prepare(
- 'SELECT user_id FROM tokens WHERE access_token = $1;'
- )
- self.query_get_recipes = self.db.prepare(
- 'SELECT * FROM recipes ORDER BY likes DESC;'
- )
- def login(self, email, password):
- result_login = self.query_login(email, password)
- if len(result_login) == 1:
- token = str(randint(0, 10000))
- self.query_create_token(result_login[0][0], token)
- return token
- else:
- return False
- def create_user(self, email, password, name, description):
- self.query_create_user(email, password, name, description)
- def check_token(self, token):
- result = self.query_check_token_and_return_userid(token)
- if len(result) == 0:
- return False
- return self.query_check_token_and_return_userid(token)[0][0]
- def get_recipes(self, token):
- result_check_token = self.check_token(token)
- if result_check_token is False:
- print('Token inválido!')
- exit()
- result_recipes = self.query_get_recipes()
- for i in result_recipes:
- print(i)
- return self.query_get_recipes()
- class Recipe:
- def __init__(self, name, difficulty, portions, prepareTime, likes, dislikes, description, user_id):
- self.name = name
- self.difficulty = difficulty
- self.portions = portions
- self.prepareTime = prepareTime
- self.likes = likes
- self.dislikes = dislikes
- self.description = description
- self.user_id = user_id
- db = DataBase()
- args = sys.argv
- if len(args) < 2:
- print('Erro: Informe ao menos um argumento!')
- exit()
- if args[1] == 'login':
- if len(args) < 3:
- print('Erro: Informe o usuário e senha para logar')
- exit()
- print('token de login:', db.login(args[2], args[3]))
- elif args[1] == 'create_account':
- if len(args) < 5:
- print('Erro: Informe o usuário, senha, nome e descrição para a conta em que deseja criar')
- exit()
- db.create_user(args[2], args[3], args[4], args[5])
- print('Usuário criado')
- elif args[2] == 'recipes_list':
- if len(args) < 2:
- print('Erro: Informe o seu token de login')
- exit()
- db.get_recipes(args[2])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement