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()
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