コード例 #1
0
ファイル: account.py プロジェクト: AngCosmin/hackathon-bestem
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
コード例 #2
0
ファイル: event.py プロジェクト: AngCosmin/hackathon-bestem
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
コード例 #3
0
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
コード例 #4
0
ファイル: utils.py プロジェクト: AngCosmin/hackathon-bestem
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
コード例 #5
0
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
コード例 #6
0
ファイル: account.py プロジェクト: AngCosmin/hackathon-bestem
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
コード例 #7
0
ファイル: utils.py プロジェクト: AngCosmin/hackathon-bestem
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&amp;source=gmail&amp;ust=1554664209321000&amp;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
コード例 #8
0
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