Beispiel #1
0
def get_notifications(id):
    if g.current_user.id != id:
        return error_response(401,
                              'You may only view/edit your own notifications')
    if request.method == 'GET':
        user = User.query.get_or_404(id)
        page = request.args.get('page', 1, type=int)
        per_page = min(request.args.get('per_page', 10, type=int), 100)
        data = Notification.to_collection_dict(user.notifications,
                                               page,
                                               per_page,
                                               'api.get_notifications',
                                               id=id)
        return jsonify(data)
    if request.method == 'POST':
        data = request.get_json() or {}
        if validate_notification(data) == False:
            return bad_request(
                'There was a problem with the data you supplied.  Make sure that the entries you supply for each field exist in our database.'
            )
        n = Notification()
        setattr(n, "user_id", id)
        n.from_dict(data, new_notification=True)
        db.session.add(n)
        db.session.commit()
        response = jsonify(n.to_dict())
        response.status_code = 201
        response.headers['Location'] = url_for('api.get_notification',
                                               user_id=id,
                                               notification_id=n.id)
        return response
def createNotificationEntry():

    data = request.get_json() or {}
    print(data)

    if 'device_id' not in data or 'code' not in data:
        return bad_request('Corrupted data!')

    device_id = data['device_id']
    code = data['code']

    device = Device.query.filter_by(id= device_id).first()
    currentStatus = device.baby_status

    print(currentStatus)
    print(code)


    if currentStatus != code:

        #Create notification object
        users = User.query.filter_by(device_id=device_id).all()
        
        #Update
        device.baby_status = code
        db.session.commit()


        for u in users:
            notificationEntry = Notification()
            notifData = dict()

            notifData['user_id'] = u.id
            notifData['code'] = code

            notificationEntry.from_dict(notifData)

            # Update db
            db.session.add(notificationEntry)
            db.session.commit()

        #Update db
        #db.session.add(notificationEntry)
        #db.session.commit()

        #Return the response
        message = "Alarm"

        if code == 1:
            message = "Your baby seems like not sleeping, want to check? :)"
        elif code == 6:
            message = "Fever risk, please check your baby :)"
        elif code == 0:
            message = "Your dear is OK :)"

        print(message)

        notify(message)

    response = jsonify()
    response.status_code = 201


    return response