def friends(): current_user_id = get_jwt_identity() vals = {} friends = [] suggestions = [] for val in Users_Friends.select().where( Users_Friends.user == current_user_id): user = Users.get_or_none(Users.id == val.friend) friends.append({ 'id': user.id, 'name': user.name, 'avatar': user.avatar }) for user_event in Users_Events.select().where( Users_Events.user == current_user_id): user_events_new = Users_Events.select().where( Users_Events.event == user_event.event) for val in user_events_new: user = Users.get_or_none(Users.id == val.user) if user.id is not current_user_id: suggestions.append({ 'id': user.id, 'name': user.name, 'avatar': user.avatar }) for i in friends: try: suggestions.remove(i) except ValueError: pass result = {'friends': friends, 'suggestions': suggestions} return jsonify({'success': True, 'message': result}), 200
def get(): event_id = request.args['event_id'] event = Events.get_or_none(Events.id == event_id) users_events = Users_Events.select().where(Users_Events.event == event_id) users_list = [] for aux in users_events: user = Users.get_or_none(Users.id == aux.user) dict = { 'name': user.name, 'avatar': user.avatar, 'id': user.id } users_list.append(dict) photos = [] pin = Pins.get_or_none(Pins.id == event.pin) pictures = Pictures.select().where(Pictures.pin == pin.id) for picture in pictures: photos.append(picture.url) result = { 'title': event.title, 'description': event.description, 'time_start': event.time_start, 'time_end': event.time_end, 'users': users_list, 'photos': photos, } return jsonify({'success': True, 'message': result}), 200
def details(): id = request.args['pin_id'] pin = Pins.get_or_none(Pins.id == id) # user if pin.type == 1: mydict = { 'title': pin.title, 'description': pin.description, 'created_at': pin.created_at, 'type': 1, 'pictures': [], 'status': pin.status, } pictures = Pictures.select().where(Pictures.pin == id) for picture in pictures: mydict['pictures'].append(picture.url) # company else: user_id = pin.user user = Users.get_or_none(Users.id == user_id) pictures = [user.avatar] mydict = { 'type': 2, 'name': user.name, 'email': user.email, 'info': user.info, 'phone': user.phone, 'pictures': pictures } return jsonify({'success': True, 'message': mydict}), 200
def approve_pin_cleaned(): pin_id = int(request.form['pin_id']) query = Pins.update(status=2).where(Pins.id == pin_id) query.execute() user = Users.get_or_none(Users.id == Pins.get(Pins.id == pin_id).user) var = (user.points + 20) query = Users.update(points=var, places_cleaned=(user.places_cleaned + 1)) query.execute() assign_badge_clean(user.id) return jsonify({'success': True, 'message': 'Successfully approved!'}), 200
def login(): email = request.form['email'] password = request.form['password'] user = Users.get_or_none(Users.email == email, Users.password == password) if user: access_token = create_access_token(identity=user.id) return jsonify({'success': True, 'token': access_token}), 200 return jsonify({ 'success': False, 'message': 'Bad username or password' }), 401
def index(): current_user_id = get_jwt_identity() user = Users.get_or_none(Users.id == current_user_id) details_dict = { 'picture': user.avatar, 'name': user.name, 'points': user.points, 'cleaned': user.places_cleaned, 'reported': user.places_reported, 'nr_friends': 0 } friends = Users_Friends.select().where( Users_Friends.user == current_user_id) for _ in friends: details_dict['nr_friends'] += 1 return jsonify({'success': True, 'message': details_dict}), 200
def send_mail(): current_user_id = get_jwt_identity() user = Users.get_or_none(Users.id == current_user_id) email_to = request.form['email_to'] event_id = request.form['event_id'] event = Events.get_or_none(Events.id == event_id) message = "@" + user.name + " has invited you to take part in a recycling event : " + event.title + ".<br> <br>" message = message + '<strong>Note:</strong> This invitation was intended for <strong><a href="mailto:{}" target="_blank">{}</a></strong>.<br>'.format( email_to, email_to) message = message + '<strong>Event Page:</strong> <strong><a href="http://localhost:8080/#/event/' + str( event_id ) + '" style="color:#4183c4;text-decoration:none" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://github.com/settings/blocked_users?block_user%3DAngCosmin&source=gmail&ust=1554664209321000&usg=AFQjCNFhcEiyGnWd5Kt311X8KnYc0aRuqg">Click here</a>' email_body = """\ <p class="m_-1403629251686063965email-body-subtext" style="color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:20px;margin:15px 0 5px;padding:0;text-align:left;word-wrap:normal" align="left"> {} </p>""".format(message) msg = MIMEText(email_body, 'html') msg['Subject'] = 'Event Invitation' send_mail_helper(email_to, msg.as_string()) return jsonify({'success': True, 'message': 'Success'}), 200
def create(): user_id = get_jwt_identity() lat = request.form['lat'] lng = request.form['lng'] title = request.form['title'] description = request.form['description'] f = None if len(request.files) > 0: f = request.files['file'] filename = None if f is not None: value = randint(1, 100000000) path = 'instance/images' name = '{}-{}'.format(user_id, value) extension = f.filename.split('.')[1] filename = '{}/{}.{}'.format(path, name, extension) f.save(os.path.join(filename)) pin = Pins.create(user_id=user_id, lat=lat, lng=lng, title=title, description=description, type=1) if filename is not None: image = imgur_client.upload_from_path(filename) Pictures.create(url=image['link'], pin=pin.id) user = Users.get_or_none(Users.id == user_id) query = Users.update(places_reported=(user.places_reported + 1)).where(Users.id == user_id) query.execute() assign_badge_reported(user.id) return jsonify({'success': True, 'message': 'Your pin was created'}), 200