示例#1
0
文件: user.py 项目: abi90/CoquiGames
def user_address(userid):
    try:
        if request.method == 'GET':
            address = dbm.fetch_user_address(userid)
            if address:
                return jsonify(address)
            return not_found()
        elif request.method == 'POST':
            if request.json:
                address_keys = post_address_keys
                address_keys.append('apreferred')
                address_keys.append('atype')
                for key in address_keys:
                    if key not in request.json:
                        return missing_parameters_error()
                errors = validate_address(request.json)
                if errors:
                    return jsonify({'Errors': errors}), 400

                if request.json[
                        'atype'] == 'billing' and 'pid' not in request.json:
                    return jsonify({'Errors': "Missing Payment Method."}), 400

                new_address_id = dbm.create_user_address(userid, request.json)
                return jsonify({'aid': new_address_id}), 201
            else:
                return missing_parameters_error()
    except Exception as e:
        print e.message
        return internal_server_error()
示例#2
0
文件: user.py 项目: abi90/CoquiGames
def user(userid):
    try:
        if request.method == 'GET':
            cg_user = dbm.fetch_user_info(userid=userid)
            if cg_user:
                return jsonify(cg_user)
            return not_found()
        elif request.method == 'PUT':
            if request.json:
                # Verify request json contains needed parameters
                if not ('uname' or 'ufirstname' or 'ulastname' or 'uemail'
                        or 'uphone' or 'udob' in request.json):
                    return missing_parameters_error()
                # Verify that parameters are valid
                errors = validate_update_account_data(request.json)
                if errors:
                    return jsonify({'Errors': errors}), 400
                # Update user account:
                if dbm.update_user_account(userid, request.json):
                    response = jsonify(request.json)
                    response.status_code = 201
                    return response
                return not_found()
            else:
                return bad_request()
    except Exception as e:
        print e
        return internal_server_error()
示例#3
0
文件: user.py 项目: abi90/CoquiGames
def user_preferences(userid):
    try:
        if request.method == 'GET':
            preferences = dbm.fetch_user_preferences(userid)
            if preferences:
                return jsonify(preferences)
            return not_found()
        elif request.method == 'PUT':
            if ('shipping_addressid' or 'billing_addressid'
                    or 'cid') not in request.json:
                return missing_parameters_error()
            errors = validate_user_preferences(request.json, userid)
            if errors:
                return jsonify({'errors': errors}), 400
            if 'shipping_addressid' in request.json:
                dbm.update_user_preferred_shipping(
                    request.json['shipping_addressid'], userid)
            if 'billing_addressid' in request.json:
                dbm.update_user_preferred_billing(
                    request.json['billing_addressid'], userid)
            if 'cid' in request.json:
                dbm.update_user_preferred_payment(request.json['cid'], userid)
            preferences = dbm.fetch_user_preferences(userid)
            if preferences:
                return jsonify(preferences)
            return bad_request()
    except Exception as e:
        print e.message
        return internal_server_error()
示例#4
0
文件: user.py 项目: abi90/CoquiGames
def update_payment(userid, payment_methodid):
    try:
        if request.method == 'PUT':
            if request.json:
                payment_keys = post_payment_keys
                payment_keys.append('ppreferred')
                for key in payment_keys:
                    if key not in request.json:
                        return missing_parameters_error()
                errors = validate_payment(request.json)
                if errors:
                    return jsonify({'Errors': errors}), 400
                billing_addressid = dbm.fetch_user_preferences(
                    userid)['billing_address']['aid']
                if billing_addressid:
                    pid = dbm.update_payment_method(userid, payment_methodid,
                                                    request.json,
                                                    billing_addressid)
                    return jsonify({'payment_methodid': pid}), 201
                else:
                    return jsonify({
                        'Error':
                        'Preferred Billing Address Not Found For User {0}'.
                        format(userid)
                    }), 400
            return bad_request()
        elif request.method == 'DELETE':
            result = dbm.deactivate_user_payment_method(
                userid, payment_methodid)
            if result:
                return jsonify(result)
            return bad_request()
    except Exception as e:
        print e.message
        return internal_server_error()
示例#5
0
文件: admin.py 项目: abi90/CoquiGames
def create_genre():
    try:
        if request.json:
            if 'genre' and 'active' not in request.json:
                return missing_parameters_error()
            result = dbm.create_genre(request.json['genre'],
                                      request.json['active'])
            return jsonify({"genreid": result})
        else:
            return bad_request
    except Exception as e:
        print e.message
        return internal_server_error()
示例#6
0
文件: admin.py 项目: abi90/CoquiGames
def create_product():
    try:
        if request.json:
            for key in product_keys:
                if key not in request.json:
                    return missing_parameters_error()
            result = dbm.create_product(request.json)
            return jsonify({"pid": result})
        else:
            return bad_request
    except Exception as e:
        print e.message
        return internal_server_error()
示例#7
0
文件: admin.py 项目: abi90/CoquiGames
def create_admin():
    try:
        if request.json:
            for key in post_user_keys:
                if key not in request.json:
                    return missing_parameters_error()
            errors = validate_account(request.json)
            if errors:
                return jsonify({'errors': errors}), 400
            result = dbm.add_admin_user(request.json)
            return jsonify({"uid": result})
        else:
            return bad_request
    except Exception as e:
        print e.message
        return internal_server_error()
示例#8
0
文件: user.py 项目: abi90/CoquiGames
def user_order(userid):
    try:
        if request.method == 'GET':
            orders = dbm.fetch_user_orders(userid)
            return jsonify(orders)
        elif request.method == 'POST':
            if not request.json:
                return bad_request()
            if 'shipment_feeid' and 'aid' and 'cid' not in request.json:
                return missing_parameters_error()
            errors = validate_order(request.json, userid)
            if errors:
                return jsonify({'errors': errors}), 400
            orderid = dbm.process_order(userid, request.json)
            if orderid:
                # Fetch Order
                order = dbm.fetch_order(orderid, userid)
                return jsonify(order)
            return internal_server_error()
    except Exception as e:
        print e.message
        return internal_server_error()
示例#9
0
文件: user.py 项目: abi90/CoquiGames
def get_user_id():
    if request.json:
        try:
            uid = dbm.fetch_user_id(request.json['uname'],
                                    request.json['upassword'])
            if uid:
                user = uid[0]
                token = generate_auth_token(user)
                return jsonify({
                    "uid": user['uid'],
                    'token': token,
                    'roleid': user['roleid']
                })
            else:
                # Login Error Response
                return jsonify(
                    {'Message': "Username or Password does not match!"}), 401
        except Exception as e:
            print e
            return bad_request()
    else:
        return missing_parameters_error()
示例#10
0
文件: user.py 项目: abi90/CoquiGames
def change_password(userid):
    try:
        if request.json:
            print request.json
            # Verify request json contains needed parameters
            if 'upassword' not in request.json:
                return missing_parameters_error()
            # Verify that parameters are valid
            if not validate_password(request.json['upassword']):
                return jsonify({'error': 'Invalid Password.'}), 400
            # Update user password:
            if dbm.change_password(userid, request.json['upassword']):
                return jsonify({
                    "message":
                    "User {0} Password Was Changed.".format(userid)
                })
            return not_found()
        else:
            return bad_request()
    except Exception as e:
        print e
        return internal_server_error()
示例#11
0
文件: user.py 项目: abi90/CoquiGames
def update_address(userid, addressid):
    try:
        if request.method == 'PUT':
            if request.json:
                put_address_keys = post_address_keys
                put_address_keys.append('apreferred')
                put_address_keys.append('atype')
                for key in put_address_keys:
                    if key not in request.json:
                        return missing_parameters_error()
                errors = validate_address(request.json)
                if errors:
                    return jsonify({'Errors': errors}), 400
                new_address_id = dbm.update_user_address(
                    userid, addressid, request.json)
                return jsonify({'aid': new_address_id}), 201
            return bad_request()
        elif request.method == 'DELETE':
            result = dbm.deactivate_user_address(userid, addressid)
            return jsonify(result)
    except Exception as e:
        print e.message
        return internal_server_error()
示例#12
0
文件: user.py 项目: abi90/CoquiGames
def edit_cart(userid, productid):
    try:
        if request.method == 'DELETE':
            is_deleted = dbm.remove_product_from_cart(userid=userid,
                                                      productid=productid)
            if is_deleted:
                return jsonify({
                    'Message':
                    'Product {0} was deleted from user {1} cart'.format(
                        productid, userid)
                })
            return not_found()
        elif request.method == 'PUT':
            if request.json:
                if 'pquantity' in request.json:
                    cartid = dbm.fetch_user_cartid(userid=userid)['cartid']
                    if cartid:
                        product_qty = int(request.json['pquantity'])
                        if product_qty > 0:
                            cart_contains_product = dbm.cart_contains(
                                productid=productid,
                                cartid=cartid)['product_in_cart']
                            if cart_contains_product:
                                has_changed = dbm.update_cart_product_qty(
                                    product_qty=product_qty,
                                    productid=productid,
                                    userid=userid)
                                if has_changed:
                                    cart = dbm.fetch_user_cart(userid=userid)
                                    return jsonify(cart)
                                return bad_request()
                            else:
                                return jsonify({
                                    'error':
                                    'Product {0} does not exist in user {1} cart.'
                                    .format(productid, userid)
                                }), 400
                        else:
                            return jsonify({
                                'error':
                                'Product Quantity must be greater than 0.'
                            }), 400
                    else:
                        return jsonify({
                            'error':
                            'User {0} does not have an active cart.'.format(
                                userid)
                        }), 400
            return missing_parameters_error()

        elif request.method == 'POST':
            if request.json:
                if 'pquantity' in request.json:
                    cartid = dbm.fetch_user_cartid(userid=userid)['cartid']
                    if cartid:
                        product_qty = int(request.json['pquantity'])
                        if product_qty > 0:
                            cart_contains_product = dbm.cart_contains(
                                productid=productid,
                                cartid=cartid)['product_in_cart']
                            if not cart_contains_product:
                                added_product = dbm.add_product_to_cart(
                                    cartid=cartid,
                                    productid=productid,
                                    product_qty=product_qty)
                                if added_product:
                                    cart = dbm.fetch_user_cart(userid=userid)
                                    return jsonify(cart)
                            else:
                                return jsonify({
                                    'error':
                                    'Product {0} is already in user {1} cart.'.
                                    format(productid, userid)
                                }), 400
                        else:
                            return jsonify({
                                'error':
                                'Product Quantity must be greater than 0.'
                            }), 400
                    else:
                        return jsonify({
                            'error':
                            'User {0} does not have an active cart.'.format(
                                userid)
                        }), 400
            return missing_parameters_error()

    except Exception as e:
        print e
        return internal_server_error()