Exemplo n.º 1
0
def notification():
    error = None
    if request.method == "GET":  # check whether there is upcoming events
        gtID = session['username']
        events = get_notification(db_handler, gtID)
        key_pairs = {}
        for row in db_handler.get_all_records(db_handler.user_tb):
            key_pairs[row[0]] = row[1:]
        user = key_pairs[long(gtID)]
        pendingEvents = []
        for e in events:
            minutes = calculateTimeLeft(e)
            if minutes < 120:
                pushNotification(user, e, minutes)
                delete_notification(db_handler, e[0], gtID)
                d = {
                    'ActivityId': e[0],
                    'Name': e[1],
                    'CreatorId': e[2],
                    'Location': e[3],
                    'Date': str(e[4]),
                    'Time': e[5],
                    'LeftTime': minutes
                }
                pendingEvents.append(d)
        if len(pendingEvents) > 0:
            return jsonify(events=pendingEvents)
        return "OK"
    elif request.method == "POST":  # subscribe an event
        activityID = request.json['activityID']
        gtID = session['username']

        # some input checking
        if len(gtID) == 0:
            return "Not authorized", 403
        try:
            int(gtID)
        except:
            return "Bad request", 400
        add_notification(db_handler, gtID, activityID)
        return "OK"
Exemplo n.º 2
0
def notification():
    error = None
    if request.method == "GET": # check whether there is upcoming events
        gtID = session['username']
        events = get_notification(db_handler, gtID)
        key_pairs = {}
        for row in db_handler.get_all_records(db_handler.user_tb):
            key_pairs[row[0]] = row[1:]
        user = key_pairs[long(gtID)]
        pendingEvents = []
        for e in events:
            minutes = calculateTimeLeft(e)
            if minutes < 120:
                pushNotification(user, e, minutes)
                delete_notification(db_handler, e[0], gtID)
                d = {
                    'ActivityId': e[0],
                    'Name': e[1],
                    'CreatorId': e[2],
                    'Location': e[3],
                    'Date': str(e[4]),
                    'Time': e[5],
                    'LeftTime': minutes
                }
                pendingEvents.append(d)
        if len(pendingEvents) > 0:
            return jsonify(events=pendingEvents)
        return "OK"
    elif request.method == "POST": # subscribe an event
        activityID = request.json['activityID']
        gtID = session['username']

        # some input checking
        if len(gtID) == 0:
            return "Not authorized", 403
        try:
            int(gtID)
        except:
            return "Bad request", 400
        add_notification(db_handler, gtID, activityID)
        return "OK"
Exemplo n.º 3
0
def events():
    error = None
    if request.method == "GET":
        startDate = request.args.get('startDate', type=str)
        endDate = request.args.get('endDate', type=str)
        tag = request.args.get('tag', type=str)
        entries = select_activity(db_handler, startDate, endDate, tag)
        return jsonify(events=entries)
    elif request.method == "POST":
        name = request.json['name']
        date = request.json['date']
        time = request.json['time']
        tags = request.json['tags']
        location = request.json['location']
        latlon = request.json['latlon']
        description = request.json['description']
        gtID = session['username']

        # some input checking
        if len(name) == 0 or len(date) == 0 or len(time) == 0 or len(tags) == 0 \
            or len(location) == 0 or (not isinstance(latlon, dict)) \
            or len(description) == 0 or len(gtID) == 0:
            return "Bad request", 400
        try:
            int(gtID)
        except:
            return "Bad request", 400
        if not isinstance(tags, list):
            return "Bad request", 400
        r = re.compile('.{4}-.{2}-.{2}')
        if not (len(date) == 10):
            return "Bad request", 400
        else:
            if not r.match(date):
                return "Bad request", 400

        add_activity(db_handler, name, gtID, location, latlon['lat'], latlon['lon'], \
                  date, time, description, tags)
        return "OK"
    elif request.method == "UPDATE":
        activityID = long(request.json['activityID'])
        name = request.json['name']
        date = request.json['date']
        time = request.json['time']
        tags = request.json['tags']
        description = request.json['description']

        # some input checking
        if len(name) == 0 or len(date) == 0 or len(time) == 0 or len(tags) == 0 \
            or len(description) == 0:
            return "Bad request", 400
        if not isinstance(tags, list):
            return "Bad request", 400
        r = re.compile('.{4}-.{2}-.{2}')
        if not (len(date) == 10):
            return "Bad request", 400
        else:
            if not r.match(date):
                return "Bad request", 400

        act = get_activity(db_handler, activityID)
        creatorID = act[2]
        gtID = long(session['username'])
        if gtID == creatorID:
            update_activity(db_handler, activityID, name, date, time, tags,
                            description)
            return "OK"
        else:
            return "Not authorized", 403
    elif request.method == "DELETE":
        activityID = long(request.json['activityID'])
        act = get_activity(db_handler, activityID)
        creatorID = act[2]
        gtID = long(session['username'])
        if gtID == creatorID:
            delete_notification(db_handler, activityID, gtID)
            delete_activity(db_handler, activityID)
            return "OK"
        else:
            return "Not authorized", 403

    return redirect(url_for('/'))
Exemplo n.º 4
0
def events():
    error = None
    if request.method == "GET":
        startDate = request.args.get('startDate', type=str)
        endDate = request.args.get('endDate', type=str)
        tag = request.args.get('tag', type=str)
        entries = select_activity(db_handler, startDate, endDate, tag)
        return jsonify(events=entries)
    elif request.method == "POST":
        name = request.json['name']
        date = request.json['date']
        time = request.json['time']
        tags = request.json['tags']
        location = request.json['location']
        latlon = request.json['latlon']
        description = request.json['description']
        gtID = session['username']

        # some input checking
        if len(name) == 0 or len(date) == 0 or len(time) == 0 or len(tags) == 0 \
            or len(location) == 0 or (not isinstance(latlon, dict)) \
            or len(description) == 0 or len(gtID) == 0:
            return "Bad request", 400
        try:
            int(gtID)
        except:
            return "Bad request", 400
        if not isinstance(tags, list):
            return "Bad request", 400
        r = re.compile('.{4}-.{2}-.{2}')
        if not (len(date) == 10):
            return "Bad request", 400
        else:
            if not r.match(date):
                return "Bad request", 400

        add_activity(db_handler, name, gtID, location, latlon['lat'], latlon['lon'], \
                  date, time, description, tags)
        return "OK"
    elif request.method == "UPDATE":
        activityID = long(request.json['activityID'])
        name = request.json['name']
        date = request.json['date']
        time = request.json['time']
        tags = request.json['tags']
        description = request.json['description']

        # some input checking
        if len(name) == 0 or len(date) == 0 or len(time) == 0 or len(tags) == 0 \
            or len(description) == 0:
            return "Bad request", 400
        if not isinstance(tags, list):
            return "Bad request", 400
        r = re.compile('.{4}-.{2}-.{2}')
        if not (len(date) == 10):
            return "Bad request", 400
        else:
            if not r.match(date):
                return "Bad request", 400

        act = get_activity(db_handler, activityID)
        creatorID = act[2]
        gtID = long(session['username'])
        if gtID == creatorID:
            update_activity(db_handler, activityID, name, date, time, tags, description)
            return "OK"
        else:
            return "Not authorized", 403
    elif request.method == "DELETE":
        activityID = long(request.json['activityID'])
        act = get_activity(db_handler, activityID)
        creatorID = act[2]
        gtID = long(session['username'])
        if gtID == creatorID:
            delete_notification(db_handler, activityID, gtID)
            delete_activity(db_handler, activityID)
            return "OK"
        else:
            return "Not authorized", 403

    return redirect(url_for('/'))