def create(data): id_user = data['id_user'] title = data['title'] private = data['private'] ordered = data['ordered'] queryString = f'''INSERT INTO public.list( id_user, title, private, ordered) VALUES ({id_user}, '{title}', {private}, {ordered}) returning id''' result = query.raw(queryString, False) id_list = result['id'] items = data['items'] if ordered: for item in items: queryString = f'''INSERT INTO public.item( id_list, item_order, text) VALUES ({id_list}, {item['item_order']}, '{item['text']}') returning id''' print(queryString) result = query.raw(queryString, False) return jsonify('success creating ordered list') else: for item in items: queryString = f'''INSERT INTO public.item( id_list, text) VALUES ({id_list}, '{item['text']}') returning id''' result = query.raw(queryString, False) return jsonify('success creating list')
def create(data): try: id_user = data['id_user'] id_list = data['id_list'] queryString = f"insert into public.like(id_user, id_list) values ({id_user}, {id_list}) returning id" result = query.raw(queryString, False) result = query.raw( f"update public.list set likes = likes + 1 where id={id_list} returning id", False) return jsonify('Curtido com sucesso') except: return jsonify('Ocorreu uma falha ao curtir a lista')
def delete(id): try: queryString = f"delete from public.item where id_list={id} returning id" result = query.raw(queryString, True) result = like.delete_from_list(id) result = comment.delete_from_list(id) queryString = f"delete from public.list where id={id} returning id" result = query.raw(queryString, False) return jsonify("Lista excluída com sucesso") except Exception as e: print(e) return jsonify("Não foi possível excluir a lista")
def delete(data): try: id_user = data['id_user'] id_list = data['id_list'] queryString = f"delete from public.like where id_user={id_user} and id_list={id_list} returning id" result = query.raw(queryString, False) if result == None: return jsonify( 'Não é possível descurtir uma lista que não foi curtida') result = query.raw( f"update public.list set likes = likes - 1 where id={id_list} returning id", False) return jsonify('Lista descurtida') except: return jsonify('Ocorreu uma falha ao descurtir a lista')
def get(id_list): queryString = f"select id, comment_text, id_user, comment_date from public.comment where id_list={id_list} order by id" comments = query.raw(queryString, True) if comments == None: return [] result = map(put_user, comments) return list(result)
def feed(id_viewer): queryString = "select * from public.list where private=false order by id desc" lists = query.raw(queryString, True) if lists == None: return jsonify([]) result = map(lambda list: put_items(list, id_viewer) ,lists) return jsonify(list(result))
def get(id_user): queryString = f"select * from public.list where id_user={id_user} order by id desc" lists = query.raw(queryString, True) if lists == None: return jsonify([]) result = map(lambda list: put_items(list, id_user) ,lists) return jsonify(list(result))
def update(data): sets = [] try: sets.append(f"name = '{data['name']}'") except: print('There is no name') """ try: if email_exists(data['email']): return jsonify({ 'message':'O e-mail informado já está cadastrado no sistema' }) sets.append(f"email = '{data['email']}'") except: print('There is no email') """ try: sets.append(f"bio = '{data['bio']}'") except: print('There is no bio') try: password = pbkdf2_sha256.hash(data['password']) sets.append(f"password = '******'") except: print('There is no password') if len(sets) == 0: return jsonify({'message': 'Nenhum campo foi alterado'}) sets = ', '.join(sets) queryString = f"update public.user set {sets} where id={data['id']} returning id" print(queryString) result = query.raw(queryString, False) return get(result['id'])
def delete_from_list(id_list): try: queryString = f"delete from public.comment where id_list={id_list} returning id" result = query.raw(queryString, True) return jsonify({'success': True}) except Exception as e: print(e) return jsonify({'success': False})
def delete(id): try: queryString = f"delete from public.comment where id={id} returning id" result = query.raw(queryString, False) if result == None: return jsonify('Não é possível excluir um comentário inexistente') return jsonify('Comentário excluído') except Exception as e: print(e) return jsonify('Não foi possível excluir o comentário')
def create(data): #convert dict to strings of keys and values name = data['name'] email = data['email'] if email_exists(email): return jsonify( {'message': 'O e-mail informado já está cadastrado no sistema'}) password = pbkdf2_sha256.hash(data['password']) queryString = f"insert into public.user (name, email, password) values ('{name}', '{email}', '{password}') returning id" result = query.raw(queryString, False) return get(result['id'])
def login(data): email = data['email'] queryString = f"select id, password from public.user where email='{email}'" result = query.raw(queryString, False) if result == None: return jsonify( {'message': 'O e-mail informado não está cadastrado no sistema'}) password = data['password'] is_correct = pbkdf2_sha256.verify(password, result['password']) if is_correct: return get(result['id']) return jsonify({'message': 'A senha está incorreta'})
def put_items(list, id_viewer): #put user id_user = list['id_user'] list['user'] = query.raw(f"select id, name, email, photo from public.user where id={id_user}", False) #put items list['items'] = [] id_list = list['id'] queryString = f'select * from public.item where id_list={id_list}' items = query.raw(queryString, True) for item in items: list['items'].append(item) #put liked queryString = f'select * from public.like where id_list={id_list} and id_user={id_viewer}' liked = query.raw(queryString, False) if liked == None: liked = False else: liked = True list['liked'] = liked #put comments list['comments'] = comment.get(id_list) return list
def create(data): try: id_user = data['id_user'] id_list = data['id_list'] comment_text = data['comment_text'] queryString = f'''INSERT INTO public.comment( id_user, id_list, comment_text) VALUES ({id_user}, {id_list}, '{comment_text}') returning id''' result = query.raw(queryString, False) return jsonify(result) except Exception as e: print(e) return jsonify('Não foi possível salvar seu comentário')
def get(id): queryString = "select id, name, email, bio, birth_date, photo from public.user where id={0}".format( id) result = query.raw(queryString, False) return jsonify(result)
def put_user(comment): queryString = f"select name, photo from public.user where id={comment['id_user']}" result = query.raw(queryString, False) comment['user'] = result return comment
def get_likes(id_list): queryString = f"select * from public.like where id_list={id_list}" result = query.raw(queryString, True) return jsonify(result)
def email_exists(email): queryString = f"select email from public.user where email='{email}'" result = query.raw(queryString, False) if result == None: return False return True