def save_order_addresses(id): user_authenticated_id = get_jwt_identity() pickup_address = Address(address=request.json.get('pickup').get('address'), city=request.json.get('pickup').get('city'), country=request.json.get('pickup').get('country'), cp=request.json.get('pickup').get('CP'), user_id=user_authenticated_id) pickup_address.save() delivery_address = Address( address=request.json.get('delivery').get('address'), city=request.json.get('delivery').get('city'), country=request.json.get('delivery').get('country'), cp=request.json.get('delivery').get('CP'), user_id=user_authenticated_id) delivery_address.save() order = Order.query.get(id) order.address_delivery = delivery_address order.address_pickup = pickup_address order.save() DBManager.commitSession() order_new_data_mail(order) return jsonify(order.serializeForEditView()), 200
def create_order(): user_authenticated_id = get_jwt_identity() helper_id = request.form.get('helper_id') description = request.form.get('description') order = Order(description=description, helper_id=helper_id, status_id=1) order.save() if os.environ.get('AWS_S3_BUCKET_NAME'): files = request.files for key in files: file = files[key] if file: url_document = upload_file_to_s3( file, os.environ.get('AWS_S3_BUCKET_NAME')) if url_document: document = Document(name=file.filename, url=url_document, order=order, user_id=user_authenticated_id) document.save() else: print("Faltan las credenciales de AWS") DBManager.commitSession() orderSerialized = order.serialize() if orderSerialized: new_order_mail(order.helper, order) #Añadir los documentos al objeto orderSerialized["documents"] = list( map(lambda document: document.serialize(), order.documents)) return jsonify({"status": "ok", "order": orderSerialized})
def create_admin(): full_name = None while full_name is None: full_name = input('Full name: ') or None email = None while email is None: email = input('email: ') or None password = None while password is None: password = getpass('Password: '******'Phone: ') or None hashed_password = generate_password_hash(password, method='sha256') new_user = User( email=email, password=hashed_password, full_name=full_name, phone=phone, role_id=Role.ADMIN_ROLE_ID, is_active= True, ) new_user.save() DBManager.commitSession()
def create_order(): user_authenticated_id = get_jwt_identity() helper_id = request.form.get('helper_id') description = request.form.get('description') long_description = request.form.get('long_description') order = Order(description=description, long_description=long_description, helper_id=helper_id, status_id=1) order.save() documentURL = request.form.get('files') if documentURL: filename = 'Documents URL' document = Document(name=filename, url=documentURL, order=order, user_id=user_authenticated_id) document.save() DBManager.commitSession() orderSerialized = order.serialize() if orderSerialized: new_order_mail(order.helper, order) # Añadir los documentos al objeto orderSerialized["documents"] = list( map(lambda document: document.serialize(), order.documents)) return jsonify({"status": "ok", "order": orderSerialized})
def set_order_approved(id): order = Order.query.get(id) order.status_id = Status.APPROVED_STATUS_ID order.save() DBManager.commitSession() order_status_update_mail(order) return jsonify(order.serializeForEditView()), 200
def article_list(): if request.method == 'GET': page_no = int(request.args.get('pageNo')) # page_no, page_size 为整形,str操作数据库会报错 page_size = int(request.args.get('pageSize')) _type = request.args.get('type') if _type == '0': _result = DBManager().get_article_list(None, page_no, page_size) return jsonify({'code': 1, 'data': _result, 'message': '获取文章里列表成功'}) elif _type == '1': _result = DBManager().get_article_list_hot() return jsonify({'code': 1, 'data': _result, 'message': '获取文章里列表成功'}) else: cookies = request.cookies.get('blog_user') # 获取cookie 会自动编码? if cookies is None: return jsonify({'code': 0, 'data': '请登录', 'message': '未登录状态,请重新登录'}) else: cookies = json.loads(unquote(cookies)) _id = cookies['id'] if _id is None: return jsonify({'code': 0, 'data': '请登录', 'message': '未登录状态,请重新登录'}) else: _result = DBManager().get_article_list(_id) return jsonify({'code': 1, 'data': _result, 'message': '获取文章里列表成功'})
def save_video(id): user_authenticated_id = get_jwt_identity() order = Order.query.get(id) if os.environ.get('AWS_S3_BUCKET_NAME'): files = request.files print("files", files) for key in files: file = files[key] if file: url_document = upload_file_to_s3( file, os.environ.get('AWS_S3_BUCKET_NAME')) if url_document: document = Document(name=file.filename, url=url_document, order=order, user_id=user_authenticated_id) document.save() else: print("Faltan las credenciales de AWS") DBManager.commitSession() order_new_data_mail(order) return jsonify(order.serializeForEditView()), 200
def delete_user(id): user = User.query.get(id) if user is None: raise APIException('User not found', status_code=404) user.is_active = False DBManager.commitSession() return jsonify(user.serialize()), 200
def accept_order(id): order = Order.query.get(id) order.status_id = Status.PROCESSING_STATUS_ID order.save() order_acceptance_mail(order) DBManager.commitSession() return jsonify(order.serializeForEditView()), 200
def delete_order(id): order = Order.query.get(id) if order is None: raise APIException('Order not found', status_code=404) order.active = False print("ORDER ACTIVE", order.active) DBManager.commitSession() return jsonify(order.serializeForEditView()), 200
def save_video(id): user_authenticated_id = get_jwt_identity() video = request.json.get('video', None) order = Order.query.get(id) document = Document(name="Video", url=video, order=order, user_id=user_authenticated_id) document.save() DBManager.commitSession() return jsonify(order.serializeForEditView()), 200
def send_password_email(): email = request.json.get('email', None) user = User.query.filter_by(email=email).first() if user: dt = datetime.datetime.today() today = dt.strftime("%Y-%m-%d") user.reset_password_token = generate_password_hash(user.email + today, method='sha256') user.save() DBManager.commitSession() new_password_email(user) return jsonify({"status": "ok"}), 200
def create_roles(): if not Role.query.get(Role.ADMIN_ROLE_ID): role = Role(id=Role.ADMIN_ROLE_ID, name="Admin") role.save() if not Role.query.get(Role.MANAGER_ROLE_ID): role = Role(id=Role.MANAGER_ROLE_ID, name="Manager") role.save() if not Role.query.get(Role.HELPER_ROLE_ID): role = Role(id=Role.HELPER_ROLE_ID, name="Helper") role.save() DBManager.commitSession() return
def add_article(): if request.method == 'POST': data = request.get_data() req = json.loads(data) _id = req['userId'] title = req['title'] content = req['content'] _userInfo = DBManager().get_user_by_id(_id) _author = _userInfo['nick_name'] _create_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') _result = DBManager().insert_article(title, content, _create_time, _author, _id) print('result:', _result) return jsonify({'code': 1, 'data': '保存成功', 'message': '保存成功'})
def reset_password(): token = request.json.get('token', None) if token and len(token) > 0: user = User.query.filter_by(reset_password_token=token).first() if user: password = request.json.get('password', None) user.password = generate_password_hash(password=password, method='sha256') user.reset_password_token = None user.save() DBManager.commitSession() return jsonify({"status": "ok"}), 200 return jsonify({"status": "Bad request"}), 400
def save_user(id): userData = request.json.get('user', None) user = User.query.get(id) user.email = userData["email"] user.full_name = userData["full_name"] user.phone = userData["phone"] user.role_id = userData["role_id"] user.save() DBManager.commitSession() return jsonify(user.serialize()), 200
def reject_order(id): order = Order.query.get(id) order.status_id = Status.REJECTED_STATUS_ID order.save() response = DBManager.commitSession() order_rejection_mail(order) return jsonify(order.serializeForEditView()), 200
def save_order_files(id): user_authenticated_id = get_jwt_identity() order = Order.query.get(id) body = request.get_json() filename = 'Order #' + str(order.id) + ' files' document = Document(name=filename, url=body['files'], order=order, user_id=user_authenticated_id) document.save() DBManager.commitSession() order_new_data_mail(order) return jsonify(order.serializeForEditView()), 201
def update_order(id): order = Order.query.get(id) if request.form.get('helper_id') and int( request.form.get('helper_id')) != order.helper_id: order.status_id = Status.PROCESSING_STATUS_ID order.helper_id = request.form.get('helper_id') order.save() new_order_mail(order.helper, order) if not request.form.get('description') is None: order.description = request.form.get('description') order.save() DBManager.commitSession() orderSerialized = order.serializeForEditView() return jsonify(orderSerialized), 200
def create_statuses(): if not Status.query.get(Status.PENDING_STATUS_ID): status = Status(id=Status.PENDING_STATUS_ID, name="Pending") status.save() if not Status.query.get(Status.REJECTED_STATUS_ID): status = Status(id=Status.REJECTED_STATUS_ID, name="Rejected") status.save() if not Status.query.get(Status.PROCESSING_STATUS_ID): status = Status(id=Status.PROCESSING_STATUS_ID, name="Processing") status.save() if not Status.query.get(Status.READY_STATUS_ID): status = Status(id=Status.READY_STATUS_ID, name="Ready") status.save() if not Status.query.get(5): status = Status(id=5, name="Complete") status.save() DBManager.commitSession() return
def create_user(): user_authenticated_id = get_jwt_identity() form = request.form.to_dict() form['password_user'] = generate_password_hash(form['password_user'], method='sha256') new_user = User(email=str(form["email_address"]), password=form['password_user'], full_name=str(form["full_name"]), phone=str(form["phone_number"]), is_active=True) new_user.role_id = form["role_id"] new_user.save() DBManager.commitSession() return jsonify("User created"), 201
def register(): data = request.get_data() res = json.loads(data) mobile = res['mobile'] password = res['password'] nick_name = res['nickName'] print(mobile, password, nick_name) _result = DBManager().insert_user(mobile, password, nick_name) print('result:', _result) return jsonify({'code': 1, 'message': '注册成功', 'data': _result})
def login(): data = request.get_data() res = json.loads(data) print('data:', res) mobile = res['mobile'] password = res['password'] result = DBManager().get_user_by_mobile(mobile) print('result:', result, result['password'] == password) if result and result['password'] == password: return jsonify({'code': 1, 'message': '登录成功', 'data': result}) else: return jsonify({'code': 0, 'message': '账号密码错误', 'data': '账号密码错误'})
def article_list_by_user(): if request.method == 'GET': user_id = request.args.get('id') print(1111111, request.args.get('pageNo')) page_no = int(request.args.get('pageNo')) page_size = int(request.args.get('pageSize')) print('我发表的文章:', user_id, page_no, page_size) if user_id is None: return jsonify({'code': 0, 'data': '', 'message': '请登录'}) else: _result = DBManager().get_article_list_by_user(user_id) print('我的文章:', _result) return jsonify({'code': 1, 'data': _result, 'message': '获取我的文章列表成功'})
def crawl_single_problem(user, p_id, url, _data: dict, db: DBManager): """ return: date 2018-01-01 define 第综合抓取, 考虑存在同一道题存在在不同的时间内提交并通过 """ gevent.sleep(2) brower.get(url) lxml_html = etree.HTML(brower.page_source) xpath = '//*[@id="fixed_table"]/table/tbody/tr[2]/td[2]' date = lxml_html.xpath(xpath)[0].text.split(' ')[0] # 获取提交的时间 if date not in _data['date_ps'].keys(): _data['date_ps'][date] = [] _data['date_ps'][date].append(p_id) else: if not db.is_exists_in_date(user, p_id, date): _data['date_ps'][date].append(p_id) print(_data)
def save_order_addresses(id): user_authenticated_id = get_jwt_identity() # pickup_address = Address(address=request.json.get('pickup').get('address'), city=request.json.get('pickup').get('city'), country=request.json.get('pickup').get('country'), cp=request.json.get('pickup').get('CP'),user_id=user_authenticated_id) # pickup_address.save() # delivery_address = Address(address=request.json.get('delivery').get('address'), city=request.json.get('delivery').get('city'), country=request.json.get('delivery').get('country'), cp=request.json.get('delivery').get('CP'),user_id=user_authenticated_id) # delivery_address.save() order = Order.query.get(id) # order.address_delivery = delivery_address # order.address_pickup = pickup_address # order.save() order.status_id = Status.COMPLETED_STATUS_ID order.save() response = DBManager.commitSession() order_rejection_mail(order) order_new_data_mail(order) return jsonify(order.serializeForEditView()), 200
def delete_document(id): document = Document.query.get(id) document.delete() DBManager.commitSession() return jsonify(document.serialize()), 200
def article_types(): if request.method == 'GET': _result = DBManager().get_article_type() return jsonify({'code': 1, 'data': _result, 'message': '成功'})
def article_detail(): if request.method == 'GET': _id = request.args.get('id') _result = DBManager().get_article_detail(_id) print('result:', _result) return jsonify({'code': 1, 'data': _result, 'message': '获取文章详情成功'})
from aiogram import Bot, types from aiogram.types import InlineKeyboardButton from aiogram.dispatcher import Dispatcher from aiogram.utils import executor from config import TOKEN from models import DBManager bot = Bot(token=TOKEN) dp = Dispatcher(bot) db = DBManager() @dp.message_handler(commands=['start']) async def process_start_command(message: types.Message): await message.reply( "Привет!\n"\ "Я бот через которого можно смотреть товары онлайн магазина\n"\ "Чтобы начать напиши: /catalog"\ ) @dp.message_handler(commands=['catalog']) async def get_categories_command(msg: types.Message): """Получение всех категорий""" categories = db.get_categories() keyboard = types.InlineKeyboardMarkup() for category in categories: keyboard.add( InlineKeyboardButton(text=category, callback_data=f'ctg_{category}'))