Ejemplo n.º 1
0
def get_my_detail():
    data = request.json
    valid_token, usr_ = validate_token(data)
    if valid_token:
        result = {
            "name": usr_.username,
            "email": usr_.email, 
            "phone":usr_.phone, 
            "veg":usr_.veg, 
            "reg_id":usr_.reg_id, 
            "sic_id":usr_.sic_id, 
            "role":usr_.role, 
            "created_on":usr_.registered_on, 
            "last_update":usr_.last_updated_on
        }

        response_object = {
            'status': 'success',
            'message': 'detail of the user',
            'payload': result
        }
        return jsonify(response_object), 200

    else:
        response_object = {
            'status': 'fail',
            'message': 'invalid token',
        }
        return jsonify(response_object), 300
Ejemplo n.º 2
0
def get_tomorrows_list():
    '''
        return the list of students, who are enrolled for tomorrows meal.
    '''
    try:
        auth = request.args.get('auth', None, type=str)
        print("auth = ", auth)
    except:
        response={
            "status":"fail",
            "message":"No argument"
        }
        return jsonify(response), 400
    valid_token, usr_ = validate_token({'token':auth})

    if not valid_token or not usr_.role == 'maintainer':
        response_object = {
            'status': 'fail',
            'message': "Invalid maintainer",
        }
        return jsonify(response_object), 300
    tomorrows_date = datetime.datetime.today() + datetime.timedelta(days=1)
    tomorrows_date = tomorrows_date.astimezone(timezone('Asia/Kolkata'))
    # tomorrows_date = datetime.datetime.today() + datetime.timedelta(days=1)
    # tomorrows_date = tomorrows_date.strftime("%d %m %Y")
    # tomorrows_date = datetime.datetime.strptime(tomorrows_date, "%d %m %Y")
    
    from server import SQLSession
    session = SQLSession()

    meals_ = session.query(Meal).filter_by(date=tomorrows_date.date()).all()

    res = [{
        'meal_id':i.id,
        'date':i.date,
        'type':i.type_of_meal,
        'items':i.items,
        'isVeg':i.veg,
        "number_of_users":len([j.id for j in i.attendees])} 
        for i in meals_]
    
    #print(meals_)
    # uc = [i.id for i in meals_.attendees]
    session.close()
    response_object = {
        'status': 'success',
        'message': 'veg and non veg list',
        'payload': res,
        # 'non_veg':nvc
    }
    return jsonify(response_object), 200
    

    
Ejemplo n.º 3
0
def last_month_meals():
    try:
        auth = request.args.get('auth', None, type=str)
        print("auth = ", auth)
    except:
        response={
            "status":"fail",
            "message":"No argument"
        }
        return jsonify(response), 400
    valid_token, urs_ = validate_token({'token':auth})
    if not valid_token:
        response={
            "status":"fail",
            "message":"Not a valid token/user. please login again."
        }
        return jsonify(response), 300
    
    from server import SQLSession
    session = SQLSession()

    m_ = session.query(User).filter_by(id = urs_.id).first()
    session.close()
    total_meals_till_date = []
    todays_date = datetime.datetime.today()

    this_month_meal = []
    for i in m_.meals:
        total_meals_till_date.append({
            "date": i.date,
            "type_of_meal": i.type_of_meal
        })
        if i.date.month == todays_date.month:
            this_month_meal.append({
                "date": i.date,
                "type_of_meal": i.type_of_meal
            })
        
    response={
        "status":"success",
        "message":"Bills",
        "total_meals":total_meals_till_date,
        "month_meals":this_month_meal
    }
    return jsonify(response), 200
Ejemplo n.º 4
0
def update():
    data = request.json

    valid_token, usr_ = validate_token(data)
    from server import SQLSession
    session = SQLSession()
    if(valid_token):
        usr = session.query(User).filter_by(email=usr_.email).first()
        if data['isVeg'] is not None:
            usr.veg = data['isVeg']
        if data['phone'] is not None:
            usr.phone = data['phone']
        if data['name'] is not None:
            usr.username = data['name']
        if data['password'] is not None:
            usr.password = data['password']
        usr.last_updated_on = datetime.datetime.utcnow()
        try:
            session.commit()
            session.close()
            return jsonify({
                "status": "success",
                "message": "updated detail",
            }), 200
        except:
            session.close()
            return jsonify({
                "status": "fail",
                "message": "cannot save changes"
            }), 400
    else:
        session.close()
        response_object = {
            'status': 'fail',
            'message': 'Invalid token',
        }
        return jsonify(response_object), 400
Ejemplo n.º 5
0
def get_tomorrows_menu():
    try:
        auth = request.args.get('auth', None, type=str)
        print("auth = ", auth)
    except:
        response = {"status": "fail", "message": "No argument"}
        return jsonify(response), 400
    valid_token, urs_ = validate_token({'token': auth})
    if not valid_token:
        response = {
            "status": "fail",
            "message": "Not a valid token/user. please login again."
        }
        return jsonify(response), 400
    tomorrows_date = datetime.datetime.today() + datetime.timedelta(days=1)
    tomorrows_date = tomorrows_date.astimezone(timezone('Asia/Kolkata'))
    # tomorrows_date = timezone('Asia/Kolkata').localize(tomorrows_date)
    from server import SQLSession
    session = SQLSession()
    # query_date = tomorrows_date.strftime('%d %m %Y')

    m_ = session.query(Meal).filter_by(date=tomorrows_date.date()).all()
    print("QUERY FROM MEAL to see is present is complete")
    print(m_)
    if len(m_) == 0:
        # session.close()
        # print("does not exist. adding menu")
        tomorrows_date_str = tomorrows_date.strftime("%d %m %Y")
        status = add_daily_menu_from_fixed_menu(tomorrows_date_str)
        if not status:
            session.close()
            response_object = {
                'status': 'fail',
                'message': "error in saving the meal",
            }
            return jsonify(response_object), 400
        else:
            print("Writing done")

    # query_date = datetime.datetime.strptime(tomorrows_date, "%d %m %Y")

    print(tomorrows_date)
    menu = session.query(Meal).filter_by(date=tomorrows_date.date()).all()
    day = tomorrows_date.strftime("%A")
    print(type(tomorrows_date))
    print(day)
    general_meal = session.query(FixedMenu).filter_by(day=day).all()
    session.close()

    res = [{
        'meal_id': i.id,
        'date': i.date,
        'type': i.type_of_meal,
        'items': i.items,
        'isVeg': i.veg,
        'time': i.time_limit,
        'avail': urs_.id in [j.id for j in i.attendees]
    } for i in menu]
    veg_foods = []
    non_veg_foods = []
    for i in res:
        if i['isVeg']:
            veg_foods.append(i)
        else:
            non_veg_foods.append(i)

    general_meal_res = [[{
        'meal_id': i.id,
        'day': i.day,
        'veg': i.veg,
        'time': 'breakfast',
        'items': i.breakfast,
    }, {
        'meal_id': i.id,
        'day': i.day,
        'veg': i.veg,
        'time': 'lunch',
        'items': i.lunch,
    }, {
        'meal_id': i.id,
        'day': i.day,
        'veg': i.veg,
        'time': 'dinner',
        'items': i.dinner,
    }] for i in general_meal]

    general_veg_foods = []
    general_non_veg_foods = []
    for i in general_meal_res:
        for j in i:
            if j['veg']:
                general_veg_foods.append(j)
            else:
                general_non_veg_foods.append(j)

    response_object = {
        'status': 'success',
        'message': 'all meals data',
        'veg_food': veg_foods,
        'non_veg_food': non_veg_foods,
        'general_non_veg_foods': general_non_veg_foods,
        'general_veg_foods': general_veg_foods
    }
    return jsonify(response_object), 200
Ejemplo n.º 6
0
def avail_meal():
    data = request.json

    valid_token, usr_ = validate_token(data)
    from server import SQLSession
    session = SQLSession()
    if(not valid_token):
        session.close()
        response_object = {
            'status': 'fail',
            'message': 'Invalid token',
        }
        return jsonify(response_object), 300
    try:
        user_ = session.query(User).filter_by(id=usr_.id).first()
        list_of_meals_already_avail = [i.id for i in user_.meals]
        lits_of_types_of_meal = [i.type_of_meal for i in user_.meals]
        for m_id in data['meal_id']:
            if m_id in list_of_meals_already_avail:
                session.close()
                response_object = {
                    'status': 'fail',
                    'message': 'already enrolled',
                'meals': list_of_meals_already_avail
                }
                return jsonify(response_object), 400
            
            meal_ = session.query(Meal).filter_by(id=m_id).first()
            print(m_id)
            print(meal_)
            
            if not meal_:
                session.close()
                response_object = {
                    'status': 'fail',
                    'message': 'No such meal',
                }
                return jsonify(response_object), 400
            
            if meal_.type_of_meal in lits_of_types_of_meal:
                session.close()
                response_object = {
                    'status': 'fail',
                    'message': 'already enrolled in {}'.format(meal_.type_of_meal),
                    'meals': lits_of_types_of_meal
                }
                return jsonify(response_object), 400
        
            user_.meals.append(meal_)
        session.commit()
        session.close()
        response_object = {
            'status': 'success',
            'message': 'meal added'
        }
        return jsonify(response_object), 200
    except Exception as e:
        session.close()
        response_object = {
            'status': 'fail',
            'message': str(e),
        }
        return jsonify(response_object), 500