Пример #1
0
def add_article(title, description, category_key, user_key, token, newdoc):
    user = find_user_by_token(user_key, token)
    if user is not None and user.token_expiration > datetime.now().date():
        # Создаем рандомный ключ
        key = generate_random_key(63)
        # создаем статью, кладем ее в бд
        article = Article.objects.create(article_key=key,
                                         title=title, description=description,
                                         docfile=newdoc,
                                         category_key=category_key,
                                         creation_date=datetime.now())
        article.save()
        # возвращаем статью
        response = {'data': model_to_dict(article), 'success': True}
        response['data']['docfile'] = str(article.docfile)

        response['data']['like_count'] = 0
        response['data']['favourite'] = False
        response['data']['author'] = user.login
        response['data']['liked'] = False

        d = response['data']['creation_date']
        dt = d.timestamp()
        del response['data']['creation_date']
        response['data']['creation_date'] = dt

        del response['data']['id']
        del response['data']['approven']
        return response
    else:
        return {
            "success": False
        }
Пример #2
0
def set_favourite(article_id, user_key, token, status):
    user = find_user_by_token(user_key, token)
    if user is not None and user.token_expiration > datetime.now().date():
        # получаем статью с таким ключом
        # возвращаем эту статью
        boolstatus = status == 'true'
        articles = ArticleFavourite.objects.filter(article_id=article_id,
                                                   user_id=user_key)
        if len(articles) == 0:
            article = ArticleFavourite(article_id=article_id,
                                       user_id=user_key,
                                       favourite=boolstatus,
                                       like=False)
            article.save()
            return {
                'success': True,
                'data': {
                    'article_id': article_id,
                    'favourite': boolstatus
                }
            }
        else:
            articlefav = articles[0]
            articlefav.favourite = boolstatus
            articlefav.save()
            return {
                'success': True,
                'data': {
                    'article_id': article_id,
                    'favourite': boolstatus
                }
            }
    else:
        return {"success": False}
Пример #3
0
def add_comment(article_key, message, user_key, token):
    user = find_user_by_token(user_key, token)
    if user is not None and user.token_expiration > datetime.now().date():

        comment = Comments.objects.create(comment_key=generate_random_key(63),
                                          user_key=user_key,
                                          article_key=article_key,
                                          text=message,
                                          creation_date=datetime.now())

        comments = Comments.objects.filter(article_key=article_key)
        dict = list(comments.values())

        response = {'success': True, 'data': dict}

        for i in dict:
            del i['id']
            i['name'] = find_user(i['user_key']).login
            d = i['creation_date']
            dt = d.timestamp()
            del i['creation_date']
            i['creation_date'] = dt

        return response
    else:
        return {
            "success": False
        }
Пример #4
0
def get_sections(user_key, token):
    user = find_user_by_token(user_key, token)
    if user is not None and user.token_expiration > datetime.now().date():
        categories = Category.objects.all()

        dict = list(categories.values())

        response = {'success': True, 'data': dict}

        return response
    else:
        return {
            "success": False
        }
Пример #5
0
def get_map(category_key, user_key, token):
    user = find_user_by_token(user_key, token)
    if user is not None and user.token_expiration > datetime.now().date():
        articles = Article.objects.filter(category_key=category_key)

        dict = list(articles.values())

        response = {'success': True, 'data': dict}

        for i in dict:
            file = str(i['docfile'])
            del i['docfile']
            del i['id']
            del i['approven']
            i['docfile'] = file

        return response
    else:
        return {
            "success": False
        }
Пример #6
0
def get_article(article_id, user_key, token):
    user = find_user_by_token(user_key, token)
    if user is not None and user.token_expiration > datetime.now().date():
        # получаем статью с таким ключом
        # возвращаем эту статью
        articles = Article.objects.filter(article_key=article_id)
        if len(articles) == 0:
            return {
                "success": False
            }
        else:
            response = {'success': True, 'data': model_to_dict(articles[0])}
            response['data']['docfile'] = str(articles[0].docfile)
            del response['data']['id']
            del response['data']['approven']
            response['data']['favourite'] = favouriteapi.get_favourite(article_id, user_key)
            return response
    else:
        return {
            "success": False
        }
Пример #7
0
def get_all_articles(category_key, user_key, token):
    user = find_user_by_token(user_key, token)
    if user is not None and user.token_expiration > datetime.now().date():
        articles = Article.objects.filter(category_key=category_key, approven=1)

        dict = list(articles.values())

        for i in dict:
            docfile = i['docfile']
            if docfile is None:
                docfile = i['image_path']
                file = docfile
            else:
                file = "$%" + str(i['docfile'])

            del i['image_path']
            d = i['creation_date']
            dt = d.timestamp()
            del i['creation_date']
            del i['docfile']
            del i['id']
            del i['approven']
            i['creation_date'] = dt
            i['docfile'] = file
            i['favourite'] = favouriteapi.get_favourite(i['article_key'], user_key)
            i['like_count'] = favouriteapi.get_like_count(i['article_key'])
            i['liked'] = favouriteapi.get_like(i['article_key'], user_key)
            i['author'] = find_user(user_key).login

        print(dict)

        response = {'success': True, 'data': dict}

        return response
    else:
        return {
            "success": False
        }