示例#1
0
def add_recipe(recipe):
    """
    Lisää reseptin.
    """
    for food in recipe["foods"]:
        food["fid"] = objectify(food["fid"])
    recipe["user"]["uid"] = objectify(recipe["user"]["uid"])
    return db.recipes.insert(recipe)
示例#2
0
def add_recipe(recipe):
    """
    Lisää reseptin.
    """
    for food in recipe["foods"]:
        food["fid"] = objectify(food["fid"])
    recipe["user"]["uid"] = objectify(recipe["user"]["uid"])
    return db.recipes.insert(recipe)
示例#3
0
def get_recipes_by_user(uid):
    """
    Palauttaa käyttäjän reseptit.
    """
    uid = objectify(uid)
    user = db.users.find_one(uid, ["recipes"])
    return user["recipes"] if user else None
示例#4
0
def get_recipes_by_user(uid):
    """
    Palauttaa käyttäjän reseptit.
    """
    uid = objectify(uid)
    user = db.users.find_one(uid, ["recipes"])
    return user["recipes"] if user else None
示例#5
0
def get_favs_by_user(uid):
    """
    Palauttaa listan käyttäjän suosikkielintarvikkeista,
    tai None, jos käyttäjää ei löydy tai käyttäjällä ei ole suosikkeja.
    """
    uid = objectify(uid)
    user = db.users.find_one(uid, ["favs"])
    return None if not user else user["favs"]
示例#6
0
def get_favs_by_user(uid):
    """
    Palauttaa listan käyttäjän suosikkielintarvikkeista,
    tai None, jos käyttäjää ei löydy tai käyttäjällä ei ole suosikkeja.
    """
    uid = objectify(uid)
    user = db.users.find_one(uid, ["favs"])
    return None if not user else user["favs"]
示例#7
0
def set_user_goals(uid, goals):
    """
    Asettaa id:tä vastaavan käyttäjän päivittäiset ravintoainetavoitteet.

    Palauttaa päivityksen onnistumista vastaavan totuusarvon.
    """
    return db.users.update({"_id": objectify(uid)}, {"$set": {
        "goals": goals
    }})["err"] is None
示例#8
0
def get_bites_by_user(uid, start_date=None, end_date=None, date=None):
    """
    Palauttaa käyttäjän annokset joko tietyltä päivältä tai aikaväliltä,
    järjestettynä päivämäärän (kasvava) mukaan.

    Päivämääräparametrit ovat inklusiivisia.
    """
    if date:
        bites = db.bites.find({
            "uid": objectify(uid),
            "date": date
        })
    else:
        bites = db.bites.find({
            "uid": objectify(uid),
            "date": {"$gte": start_date, "$lte": end_date}
        })

    return list(bites.sort("date")) if bites else bites
示例#9
0
def get_bites_by_user(uid, start_date=None, end_date=None, date=None):
    """
    Palauttaa käyttäjän annokset joko tietyltä päivältä tai aikaväliltä,
    järjestettynä päivämäärän (kasvava) mukaan.

    Päivämääräparametrit ovat inklusiivisia.
    """
    if date:
        bites = db.bites.find({"uid": objectify(uid), "date": date})
    else:
        bites = db.bites.find({
            "uid": objectify(uid),
            "date": {
                "$gte": start_date,
                "$lte": end_date
            }
        })

    return list(bites.sort("date")) if bites else bites
示例#10
0
def set_user_goals(uid, goals):
    """
    Asettaa id:tä vastaavan käyttäjän päivittäiset ravintoainetavoitteet.

    Palauttaa päivityksen onnistumista vastaavan totuusarvon.
    """
    return db.users.update(
        {"_id": objectify(uid)},
        {"$set": {"goals": goals}}
    )["err"] is None
示例#11
0
def _simpleTestHarness(no_wrap):

    import utils

    def testFormatter(event):
        return "*{}".format(event["state"])

    def buildFormatter(field, width):
        def f(dict):
            if field == 'number':
                return dict[field]
            return "{}".format(dict[field]).replace("_", " ")
        return {"formatter": f, "wrapperFormatter": width}

    set_no_wrap(no_wrap)

    field_labels = ['Time Stamp', 'State', 'Event Log ID', 'Reason Text',
                    'Entity Instance ID', 'Severity', 'Number']
    fields = ['timestamp', 'state', 'event_log_id', 'reason_text',
              'entity_instance_id', 'severity', 'number']

    formatterSpecX = {"timestamp": 10,
                      "state": 8,
                      "event_log_id": 70,
                      "reason_text": 30,
                      "entity_instance_id": 30,
                      "severity": 12,
                      "number": 4}

    formatterSpec = {}
    for f in fields:
        formatterSpec[f] = buildFormatter(f, formatterSpecX[f])

    logs = []
    for i in range(0, 30):
        log = {}
        for f in fields:
            if f == 'number':
                log[f] = i
            else:
                log[f] = "{}{}".format(f, i)
        logs.append(utils.objectify(log))

    formatterSpec = formatterSpecX

    formatters = build_wrapping_formatters(logs, fields, field_labels, formatterSpec)

    utils.print_list(logs, fields, field_labels, formatters=formatters, sortby=6,
                     reversesort=True, no_wrap_fields=['entity_instance_id'])

    print("nowrap = {}".format(is_nowrap_set()))
示例#12
0
def get_days_by_user(uid, start_date=None, end_date=None):
    """
    Palauttaa listan päivistä, joina käyttäjä on lisännyt annoksia.
    Päivällä on seuraavat avaimet: count, carbs, fat, protein, kcal, date

    Päiväparametrit ovat inklusiivisia.
    """
    key = ["date"]
    condition = {"uid": objectify(uid)}
    date_condition = {}
    if start_date:
        date_condition["$gte"] = start_date
    if end_date:
        date_condition["$lte"] = end_date
    if date_condition:
        condition["date"] = date_condition

    initial = {key: 0 for key in ["count", "carbs", "fat", "protein", "kcal"]}
    reducer = "function(c,r){r.count++;r.carbs+=c.carbs;r.fat+=c.fat;r.kcal+=c.kcal;r.protein+=c.protein;}"

    return db.bites.group(key, condition, initial, reducer)
示例#13
0
def get_days_by_user(uid, start_date=None, end_date=None):
    """
    Palauttaa listan päivistä, joina käyttäjä on lisännyt annoksia.
    Päivällä on seuraavat avaimet: count, carbs, fat, protein, kcal, date

    Päiväparametrit ovat inklusiivisia.
    """
    key = ["date"]
    condition = {"uid": objectify(uid)}
    date_condition = {}
    if start_date:
        date_condition["$gte"] = start_date
    if end_date:
        date_condition["$lte"] = end_date
    if date_condition:
        condition["date"] = date_condition

    initial = {key: 0 for key in ["count", "carbs", "fat", "protein", "kcal"]}
    reducer = "function(c,r){r.count++;r.carbs+=c.carbs;r.fat+=c.fat;r.kcal+=c.kcal;r.protein+=c.protein;}"

    return db.bites.group(key, condition, initial, reducer)
示例#14
0
def get_recipe(rid):
    """
    Palauttaa id:tä vastaavan reseptin.
    """
    rid = objectify(rid)
    return db.recipes.find_one(rid)
示例#15
0
def get_recipe(rid):
    """
    Palauttaa id:tä vastaavan reseptin.
    """
    rid = objectify(rid)
    return db.recipes.find_one(rid)
示例#16
0
def delete_recipe(rid):
    """
    Poistaa reseptin, palauttaa poistojen lukumäärän.
    """
    rid = objectify(rid)
    return db.recipes.remove({"_id": rid})["n"]
示例#17
0
def delete_recipe_from_user(uid, rid):
    """
    Poistaa käyttäjältä reseptin.
    """
    uid, rid = objectify(uid), objectify(rid)
    return db.users.update({"_id": uid}, {"$pull": {"recipes": {"rid": rid}}})
示例#18
0
def add_recipe_to_user(uid, recipe):
    """
    Lisää käyttäjälle reseptin.
    """
    uid = objectify(uid)
    return db.users.update({"_id": uid}, {"$addToSet": {"recipes": recipe}})
示例#19
0
def delete_bite(bid):
    """
    Poistaa annoksen, palauttaa poistojen lukumäärän.
    """
    bid = objectify(bid)
    return db.bites.remove({"_id": bid})["n"]
示例#20
0
def delete_fav_from_user(uid, fid):
    """
    Poistaa käyttäjältä suosikkielintarvikkeen.
    """
    uid = objectify(uid)
    return db.users.update({"_id": uid}, {"$pull": {"favs": {"fid": fid}}})
示例#21
0
def add_fav_to_user(uid, fav):
    """
    Lisää käyttäjälle suosikkielintarvikkeen.
    """
    uid = objectify(uid)
    return db.users.update({"_id": uid}, {"$addToSet": {"favs": fav}})
示例#22
0
def delete_bite(bid):
    """
    Poistaa annoksen, palauttaa poistojen lukumäärän.
    """
    bid = objectify(bid)
    return db.bites.remove({"_id": bid})["n"]
示例#23
0
def add_fav_to_user(uid, fav):
    """
    Lisää käyttäjälle suosikkielintarvikkeen.
    """
    uid = objectify(uid)
    return db.users.update({"_id": uid}, {"$addToSet": {"favs": fav}})
示例#24
0
def delete_recipe(rid):
    """
    Poistaa reseptin, palauttaa poistojen lukumäärän.
    """
    rid = objectify(rid)
    return db.recipes.remove({"_id": rid})["n"]
示例#25
0
def delete_fav_from_user(uid, fid):
    """
    Poistaa käyttäjältä suosikkielintarvikkeen.
    """
    uid = objectify(uid)
    return db.users.update({"_id": uid}, {"$pull": {"favs": {"fid": fid}}})
示例#26
0
def add_recipe_to_user(uid, recipe):
    """
    Lisää käyttäjälle reseptin.
    """
    uid = objectify(uid)
    return db.users.update({"_id": uid}, {"$addToSet": {"recipes": recipe}})
示例#27
0
def delete_recipe_from_user(uid, rid):
    """
    Poistaa käyttäjältä reseptin.
    """
    uid, rid = objectify(uid), objectify(rid)
    return db.users.update({"_id": uid}, {"$pull": {"recipes": {"rid": rid}}})