コード例 #1
0
def api_copy_account_emails(account, folder) -> Response:
    '''
    Copy emails from one folder to another within a given account.
    '''

    request_data = request.get_json()
    message_uids = get_or_400(request_data, 'message_uids')
    new_folder = get_or_400(request_data, 'new_folder')

    copy_folder_emails(account, folder, message_uids, new_folder)

    return jsonify(copied=True)
コード例 #2
0
def api_post_contacts():
    '''
    Create a new contact.
    '''

    request_data = request.get_json()

    new_contact = Contact(
        name=get_or_400(request_data, 'name'),
        email=get_or_400(request_data, 'email'),
    )
    save_contact(new_contact)

    return jsonify(added=True, id=new_contact.id)
コード例 #3
0
def api_activate_license() -> Union[Response, Tuple[Response, int]]:
    request_data = request.get_json()
    license_data = get_or_400(request_data, 'license')

    # Cleanup any copy/paste issues with the license
    license_data = license_data.strip()
    license_data = license_data.strip('-')
    license_data = license_data.strip()

    try:
        email, token = [line.strip() for line in license_data.splitlines()]
    except ValueError:
        return jsonify(
            activated=False,
            error_message=
            'Invalid license format, it should include both email and token.',
        ), 400

    try:
        activate_license(email, token)
    except LicenseActivationError as e:
        abort(400, f'{e}')

    reload_main_window()
    return jsonify(activated=True)
コード例 #4
0
def api_put_contact(contact_id) -> Response:
    '''
    Update a single contact.
    '''

    request_data = request.get_json()

    contact = Contact.query.get_or_404(contact_id)
    contact.name = get_or_400(request_data, 'name')
    contact.email = get_or_400(request_data, 'email')

    try:
        save_contact(contact)
    except IntegrityError:
        abort(400, 'This contact already exists')

    return jsonify(updated=True)
コード例 #5
0
def api_post_contacts() -> Response:
    '''
    Create a new contact.
    '''

    request_data = request.get_json()

    new_contact = Contact(
        name=get_or_400(request_data, 'name'),
        email=get_or_400(request_data, 'email'),
    )

    try:
        save_contact(new_contact)
    except IntegrityError:
        abort(400, 'This contact already exists')

    return jsonify(added=True, id=new_contact.id)
コード例 #6
0
def api_put_contact(contact_id):
    '''
    Update a single contact.
    '''

    request_data = request.get_json()

    contact = Contact.query.get_or_404(contact_id)
    contact.name = get_or_400(request_data, 'name')
    contact.email = get_or_400(request_data, 'email')

    try:
        save_contact(contact)
    # If a duplicate of the updated contact exists, just remove this one
    except IntegrityError:
        db.session.rollback()
        delete_contact(contact)

    return jsonify(updated=True)
コード例 #7
0
def api_unstar_account_emails(account, folder) -> Response:
    '''
    Unstar emails in a given account/folder.
    '''

    request_data = request.get_json()
    message_uids = get_or_400(request_data, 'message_uids')

    unstar_folder_emails(account, folder, message_uids)

    return jsonify(unstarred=True)
コード例 #8
0
def create_send():
    data = request.get_json()
    message_data = get_or_400(data, 'message')
    message_data['reply_all'] = data.get('reply_all', False)
    message_data['forward'] = data.get('forward', False)

    uid = str(uuid4())
    SEND_WINDOW_DATA[uid] = message_data
    logger.debug(f'Created send data with UID={uid}')

    endpoint = f'/send/{uid}'
    return jsonify(endpoint=endpoint)
コード例 #9
0
def api_activate_license():
    request_data = request.get_json()
    license_data = get_or_400(request_data, 'license')

    try:
        email, token = [line.strip() for line in license_data.splitlines()]
    except ValueError:
        return jsonify(activated=False, error='Invalid license format!'), 400

    try:
        activate_license(email, token)
    except LicenseActivationError as e:
        abort(400, f'{e}')

    reload_main_window()
    return jsonify(activated=True)