Example #1
0
def import_articles():
    data = request.get_json(force=True)

    validate(data, post_import_articles_schema)

    articles = []
    errors = []
    for item in data:
        err = ''
        article = Article.query.filter(Article.old_id == item['id']).first()
        if not article:
            article = Article(
                old_id=item['id'],
                title=item['title'],
                author=item['author'],
                content=item['content'],
                created_at=item['entrydate'] if item['entrydate'] != '0000-00-00' else None,
                image_filename=item['image_filename'] if 'image_filename' in item else None
            )

            articles.append(article)
            dao_create_article(article)
        else:
            err = u'article already exists: {} - {}'.format(article.old_id, article.title)
            current_app.logger.info(err)
            errors.append(err)

    res = {
        "articles": [a.serialize() for a in articles]
    }

    if errors:
        res['errors'] = errors

    return jsonify(res), 201 if articles else 400 if errors else 200
Example #2
0
def create_article(
    old_id=1,
    title='Egyptians',
    author='Mrs Black',
    content='Some info about Egypt\r\n\"Something in quotes\"',
):
    data = {
        'old_id': old_id,
        'title': title,
        'author': author,
        'content': content,
    }
    article = Article(**data)

    dao_create_article(article)
    return article