Example #1
0
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
Example #2
0
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})
Example #3
0
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()
Example #4
0
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})
Example #5
0
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
Example #6
0
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': '获取文章里列表成功'})
Example #7
0
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
Example #8
0
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
Example #9
0
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
Example #10
0
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
Example #12
0
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
Example #13
0
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
Example #14
0
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': '保存成功'})
Example #15
0
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
Example #16
0
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
Example #17
0
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
Example #18
0
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
Example #19
0
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
Example #20
0
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
Example #21
0
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
Example #22
0
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})
Example #23
0
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': '账号密码错误'})
Example #24
0
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': '获取我的文章列表成功'})
Example #25
0
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)
Example #26
0
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
Example #27
0
def delete_document(id):
    document = Document.query.get(id)
    document.delete()
    DBManager.commitSession()
    return jsonify(document.serialize()), 200
Example #28
0
def article_types():
	if request.method == 'GET':
		_result = DBManager().get_article_type()
		return jsonify({'code': 1, 'data': _result, 'message': '成功'})
Example #29
0
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': '获取文章详情成功'})
Example #30
0
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}'))