Beispiel #1
0
def send():
    user = base_helper.check_auth(api.db)
    if not user.get('login'):
        return base_helper.base_response('Can not authenticate you.', 401)

    args = flask.request.get_json()
    if not args:
        return base_helper.base_response(
            'Please, specify text for sending and chat id.', 400)

    text = args.get('text', 'Test text')
    chat_id = args.get('chat_id', '')
    if not chat_id:
        return base_helper.base_response('Please, specify chat id', 400)

    bot = telebot.TeleBot(TELEGRAM_TOKEN)

    try:
        bot.send_message(
            chat_id=chat_id,
            text=text,
        )
    except telebot.apihelper.ApiException as err:
        return base_helper.base_response(
            'Telebot exception has occured. Traceback: {}'.format(err), 500)
    except requests.exceptions.ConnectionError:
        return base_helper.base_response('Max retries exceeded.', 400)

    return base_helper.base_response('Text was sent.')
Beispiel #2
0
def my():
    message_pattern = ('Your login: {} \n '
                       '{} \n {} \n {} \n '
                       'Your role at our service is {}.')
    user = base_helper.check_auth(api.db)
    login = user.get('login')
    if not login:
        return base_helper.base_response('Can not authenticate you.', 401)

    fullname = user.get('fullname')
    fullname_msg = ('You introduced yourself as {}'.format(fullname)
                    if fullname is not None else
                    'You did not introduced yourself.')
    email = user.get('email')
    email_msg = ('Your notifications are sent at {}'.format(email)
                 if email is not None else 'You did not provide an email.')
    telegram = user.get('nickname')
    telegram_msg = ('Our bot knows you as {}'.format(telegram)
                    if telegram is not None else 'You have no telegram yet...')
    role = user.get('role', 'user')

    message = message_pattern.format(login, fullname_msg, email_msg,
                                     telegram_msg, role)

    return base_helper.base_response(message)
Beispiel #3
0
def my():
    user = base_helper.check_auth(api.db)
    if not user.get('login'):
        return base_helper.base_response('Can not authenticate you.', 401)

    email = user.get('email')
    if not email:
        return base_helper.base_response('You did not specified your email.')
    return base_helper.base_response('Your email: {}'.format(email))
Beispiel #4
0
def my():
    user = base_helper.check_auth(api.db)
    if not user.get('login'):
        return base_helper.base_response('Can not authenticate you.', 401)

    nickname = user.get('nickname')
    if not nickname:
        return base_helper.base_response(
            'You did not specified your nickname.')

    nickname = '@' + nickname if nickname[0] != '@' else nickname
    return base_helper.base_response('Your nickname: {}'.format(nickname))
Beispiel #5
0
def restore():
    user = base_helper.check_auth(api.db)
    login = user.get('login')

    if not login:
        return base_helper.base_response('Can not authenticate you.', 401)

    args = flask.request.get_json()
    code_word = args.get('code_word')
    email = args.get('email')
    if not code_word:
        return base_helper.base_response('Please provide the code word!', 400)

    if not passlib.hash.pbkdf2_sha256.verify(code_word, user.get('code_word')):
        return base_helper.base_response(
            'Your code word is incorrect, try again.', 403)

    randomword = password_generator()
    new_pwd = passlib.hash.pbkdf2_sha256.hash(randomword)
    user_email = user.get('email')
    if email or user_email:
        email = email if email else user_email
        try:
            api.db.users.find_one_and_update({'login': '******'},
                                             {'$set': {
                                                 'password': new_pwd
                                             }})
        except pymongo.errors.WriteError:
            return base_helper.base_response(
                'Something went wrong while connecting to '
                'database. Try again later.', 500)
        return emailer.helper.email_sender(None,
                                           api.app,
                                           subject='Your new password',
                                           body=randomword,
                                           sender=DEFAULT_SENDER,
                                           recipients=[email])
    else:
        return base_helper.base_response(
            'Cannot change your password. '
            'We need your email for password recovery.', 403)
Beispiel #6
0
def send():
    user = base_helper.check_auth(api.db)
    if not user.get('login'):
        return base_helper.base_response('Can not authenticate you.', 401)

    args = flask.request.get_json()
    if not args:
        return base_helper.base_response(
            'Please, specify text and recipients.', 400)
    subject = args.get('subject', 'No subject')
    body = args.get('body', '')
    recipients = args.get('recipients', [])

    if not recipients:
        return base_helper.base_response('Please, specify recipients', 400)

    sender = user.get('email', api.app.config['MAIL_DEFAULT_SENDER'])
    r_text, code = helper.email_sender(api.mail, api.app,
                                       subject=subject,
                                       body=body,
                                       sender=sender,
                                       recipients=recipients)
    return base_helper.base_response(r_text, code)