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