Beispiel #1
0
    def put_favourites(id, **kwargs):
        if request.method == 'PUT':
            status = 0
            favourite = Favourite.query.filter_by(id=id).first()
            user_id = request.args.get('user_id')
            product_id = request.args.get('product_id')

            if not favourite:
                favourite = Favourite(user_id=user_id, product_id=product_id)
                favourite.save()
                status = 201
            else:
                if user_id is not None:
                    favourite.user_id = user_id
                if product_id is not None:
                    favourite.product_id = product_id
                favourite.save()
                status = 200

            Response = jsonify({
                'id': favourite.id,
                'user_id': favourite.user_id,
                'product_id': favourite.product_id
            })
            Response.headers['Access-Control-Allow-Origin'] = '*'
            Response.status_code = status
            return Response
def favourite(car_id):
    if (car_id == 'undefined'):
        car_id = request.args.get('id')
    if request.method == "POST":
        user = User.query.filter_by(username=g.current_user["user"]).first()
        user_id = user.id
        # user_id = g.current_user["user"] #IDK HOW TO GET THIS FROM THE AUTH

        newFav = Favourite(car_id, user_id)

        try:
            db.session.add(newFav)
            db.session.commit()

            response = {
                "message": "Car Successfully Favourited",
                "car_id": car_id
            }
            return jsonify(response), 200
        except Exception as e:
            print(e)
            response = {
                "message": "Access token is missing or invalid",
            }
            return jsonify(response), 401
Beispiel #3
0
def get_fav_games(user_id):
    user = User.query.get_or_404(user_id)
    page = request.args.get('page', 1, type=int)
    per_page = min(request.args.get('per_page', 10, type=int), 100)
    data = Favourite.to_collection_dict(Favourite.query.filter_by(user=user), \
        page, per_page, 'api.get_fav_games', user_id=user_id)
    return jsonify(data)
Beispiel #4
0
def favourite_blog(blog_id):
    """
    喜欢某篇文章
    """
    blog = Blog.query.get_or_404(blog_id)
    favourite = Favourite(user=g.current_user, blog=blog)
    db.session.add(favourite)
    db.session.commit()
    return response()
Beispiel #5
0
def bookmark(pid):

    if Favourite.query.filter_by(id=str(current_user.id) + ':' +
                                 str(pid)).first():
        flash('The post was already in your collection.')
    else:
        fav = Favourite(current_user.id, pid)
        db.session.add(fav)
        db.session.commit()
        flash('The post was added in your collection.')

    return redirect(url_for('.list_post'))
Beispiel #6
0
def ajax_fav(request):
    user = request.user.get_profile()
    channel = Channel.objects.get(hash=request.POST["hash"])
    fav = Favourite()
    fav.user = user
    fav.channel = channel
    fav.name = request.POST["name"]
    fav.slug = slugify(fav.name)
    fav.save()
    return HttpResponse("OK")
Beispiel #7
0
def favourite_blog():
    """
    喜欢某篇文章
    """
    # 没有喜欢权限
    if not current_user.can_favourite():
        return '403'
    id = request.args.get('id', None)
    blog = Blog.query.get_or_404(id)
    favourite = Favourite(user=current_user, blog=blog)
    db.session.add(favourite)
    db.session.commit()
    return '200'
Beispiel #8
0
    def get_favourites():
        if request.method == 'GET':
            favourites = Favourite.get_all()
            results = []

            for fav in favourites:
                obj = {
                    'id': fav.id,
                    'user_id': fav.user_id,
                    'product_id': fav.product_id
                }
                results.append(obj)
            Response = jsonify(results)
            Response.status_code = 200
            return Response
Beispiel #9
0
def save_fav(request):
    try:
        fav = Favourite.objects.get(id=request.POST["fav_id"])
    except:
        fav = Favourite()
    user = request.user.get_profile()
    channel = Channels.objects.get(hash=request.POST["hash"])
    fav.user = user
    fav.channel = channel
    fav.name = name
    fav.save()
    return HttpResponse("YAY")
Beispiel #10
0
def favorite():
    if not session:
        abort(403)
    username = request.json.get("user_id")
    fav_dict = request.json.get("favorite")
    if request.method == 'POST':
        for favorite in fav_dict:
            fav = Favourite(user_id=username, event_id=favorite)
            db.session.add(fav)
            db.session.commit()
        return jsonify(result='SUCCESS')
    if request.method == 'DELETE':
        for favorite in fav_dict:
            fav = Favourite.query.filter_by(user_id=username,
                                            event_id=favorite).first()
            db.session.delete(fav)
            db.session.commit()
        return jsonify(result='SUCCESS')
    return jsonify(result='FAILURE')
Beispiel #11
0
def favourites(imdb_id):
    user_fav = Favourite.query.filter_by(user_id=current_user.username,
                                         imdbID=imdb_id).first()
    if imdb_id:
        if user_fav:
            db.session.delete(user_fav)
            db.session.commit()
        else:
            fmt = 'http://www.omdbapi.com/?i={}&apikey={}'.format(
                imdb_id, app.config['OMDB_APIKEY'])
            response = requests.get(fmt)
            data = response.json()
            if data['Response'] == 'True':
                fav_new_item = Favourite(user_id=current_user.username,
                                         imdbID=imdb_id,
                                         title=data['Title'],
                                         poster=data['Poster'])
                db.session.add(fav_new_item)
                db.session.commit()
            else:
                flash('Cannot add to favourites')

    favourites = []

    favourities_db = Favourite.query.filter_by(
        user_id=current_user.username).all()
    for favourite in favourities_db:
        favourites.append({
            'Title': favourite.title,
            'Poster': favourite.poster,
            'imdbID': favourite.imdbID
        })

    return render_template('favourites.html',
                           favourites=favourites,
                           user_fav=user_fav)
Beispiel #12
0
    def get_top5_favourites():
        if request.method == 'GET':
            favourites = Favourite.get_all()
            result = []

            for fav in favourites:
                count = db.session.query(Favourite).filter(
                    Favourite.product_id == fav.product_id).count()
                result.append((fav.product_id, count))

            result = set(result)
            result = list(result)
            result = sorted(result, key=itemgetter(1), reverse=True)
            result = result[:5]

            res = []

            for item in result:
                product = db.session.query(Product).get(item[0])
                obj = {
                    'id': product.id,
                    'name': product.name,
                    'description': product.description,
                    'category_id': product.category_id,
                    'proof': str(product.proof),
                    'country': product.country,
                    'available': product.available,
                    'price': str(product.price),
                    'picture': product.picture,
                    'count': item[1]
                }
                res.append(obj)

            Response = jsonify(res)
            Response.status_code = 200
            return Response
Beispiel #13
0
          password_hash=generate_password_hash('1'))
u2 = User(username='******',
          email='[email protected]',
          password_hash=generate_password_hash('2'))
u3 = User(username='******',
          email='[email protected]',
          password_hash=generate_password_hash('3'))
db.session.add(u1)
db.session.add(u2)
db.session.add(u3)
db.session.commit()

f1 = Favourite(
    user=u1,
    imdbID='tt2653342',
    title='Game of Thrones: Season 2 - Character Profiles',
    poster=
    'https://ia.media-imdb.com/images/M/MV5BMTU1MzU2MDE4MV5BMl5BanBnXkFtZTgwNTc3NzA2MDE@._V1_SX300.jpg'
)
f2 = Favourite(user=u1, imdbID='tt6172126', title='Intouchables', poster='N/A')
db.session.add(f1)
db.session.add(f2)
f3 = Favourite(
    user=u2,
    imdbID='tt4011326',
    title='The Witcher 3: The Sorceress of Vengerberg',
    poster=
    'https://ia.media-imdb.com/images/M/MV5BOWJiNGNiMmEtYTc5Mi00NzczLThmZTctOWM1ZTE5ZjE4NTdjXkEyXkFqcGdeQXVyNDgxODc1NQ@@._V1_SX300.jpg'
)
f4 = Favourite(user=u2, imdbID='tt6172126', title='Intouchables', poster='N/A')
db.session.add(f3)