Exemplo n.º 1
0
def update_ratings(item_id):
    # itemiin liittyvät muuttujat
    item = Item.get_by_id(item_id=item_id)
    ratings = Rating.get_by_item(item_id=item_id)
    i_rating = 0.0
    r = 0
    # useriin liittyvät muuttujat
    user = User.get_by_id(id=item.user_id)
    user_items = Item.get_all_by_user(user_id=item.user_id)
    u_rating = 0.0
    ru = 0

    # lasketaan itemin ratingien keskiarvo
    for rating in ratings:
        r = r + 1
        i_rating = i_rating + rating.__dict__["rating"]

    i_rating_dict = {"rating": i_rating / r}
    item.rating = i_rating_dict.get("rating")

    # lasketaan userin kaikkien itemien ratingien keskiarvo
    for rating in user_items:
        if rating.__dict__["rating"] is None:
            continue
        ru = ru + 1
        u_rating = u_rating + rating.__dict__["rating"]

    u_rating_dict = {"rating": u_rating / ru}
    user.rating = u_rating_dict.get("rating")

    # tallennetaan muutokset
    item.save()
    user.save()
Exemplo n.º 2
0
 def get(self, username):  #Palauttaa tietyn käyttäjän kaikki itemit
     user = User.get_by_username(username=username)
     if not user:
         return user_not_found()
     items = Item.get_all_by_user(user_id=user.id)
     return item_list_schema.dump(items).data, HTTPStatus.OK