Esempio n. 1
0
def list_article():
    '''
    This function will fetch article list.
    '''
    conn = db_connection()
    cursor = conn.cursor()
    try:
        sql = "select distinct id,title,description,author from article where soft_delete = 0"
        response = cursor.execute(sql)
        title_data = list(cursor.fetchall())
        titles = [x['id'] for x in title_data]
        temp_list = []

        for i in title_data:
            sql2 = "select t.tag from article as a inner join tags as t on a.id = t.article_id where a.id = '" + str(
                i['id']) + "'"
            response = cursor.execute(sql2)
            tag_data = cursor.fetchall()
            tag_list = [x['tag'] for x in tag_data]
            i['tags'] = tag_list

    except Exception as e:
        helpers.getErrorLine()
        Log.log_error(e)
        cursor.close()
        conn.close()
        return jsonify({
            'success': False,
            'message': "Some Error Occured.Please Try again later"
        })
    return jsonify({'success': True, 'data': title_data})
Esempio n. 2
0
def delete_article():
    data = request.get_json()
    id = data.get('id', None)

    if isinstance(id, int):
        conn = db_connection()
        cursor = conn.cursor()
        try:
            sql = "UPDATE article set soft_delete = 1 where id = %s"
            info = (id, )
            response = cursor.execute(sql, info)
            conn.commit()
            if response:
                return jsonify({
                    'success':
                    True,
                    'message':
                    "article with id: " + str(id) + " is deleted successfully"
                })
            return jsonify({'success': False, 'message': "Please Try again"})
        except Exception as e:
            helpers.getErrorLine()
            Log.log_error(e)
        cursor.close()
        conn.close()
    return jsonify({
        'success': False,
        'message': "Please Enter valid article ID"
    })
Esempio n. 3
0
def add_movie():
    '''
    This function add new movies.
    '''
    access_role = verify_token(request.headers)
    if access_role:
        if access_role['role'] == 'admin':
            data = request.get_json()
            if 'movies' in data.keys():
                try:
                    popularity = data['movies']['99popularity']
                    director = data['movies']['director']
                    imdb_score = data['movies']['imdb_score']
                    title = data['movies']['name']
                    genres = data['movies']['genre']
                    conn = db_connection()
                    cursor = conn.cursor()
                    sql = """INSERT into movies (title,director,popularity,imdb_score,created_at) values(%s,%s,%s,%s,%s)"""
                    cursor.execute(sql,
                                   (title, director, popularity, imdb_score,
                                    datetime.datetime.now()))
                    movie_id = cursor.lastrowid
                    for genre in genres:
                        sql2 = "select id from genres where genre = %s"
                        cursor.execute(sql2, (genre, ))
                        genre_id = cursor.fetchall()[0]['id']
                        print(genre_id)
                        sql3 = "INSERT into movies_genre (movie_id,genre,created_at) values(%s,%s,%s)"
                        cursor.execute(
                            sql3,
                            (movie_id, genre_id, datetime.datetime.now()))
                    conn.commit()
                except Exception as e:
                    cursor.close()
                    conn.close()
                    helpers.getErrorLine()
                    Log.log_error(e)
                    return jsonify({
                        'message': 'Some error occured',
                        'status': False
                    })
                cursor.close()
                conn.close()
                return jsonify({
                    'message': 'Movie Added succcessfully',
                    'status': True
                })
            else:
                return jsonify({
                    'message': 'Pls check the parameters',
                    'status': False
                })
        return jsonify(
            {'message': 'You are not authorized to access this endpoint!'})
    return jsonify({'message': 'accessToken issue! Pls login again'})
Esempio n. 4
0
def create_user():
    '''
    This function will create user.
    '''
    access_role = verify_token(request.headers)
    if access_role:
        if access_role['role'] == 'admin':
            data = request.get_json()
            password = generate_password_hash(data['password'],
                                              method="sha256")
            conn = db_connection()
            cursor = conn.cursor()
            soft_delete = 0
            is_active = 1
            try:
                sql = "select email_id from users where email_id = %s"
                cursor.execute(sql, (data['email_id'], ))
                user_data = cursor.fetchall()
                if len(user_data) > 0:
                    return jsonify({'message': 'Email Id already Registered!'})
                else:
                    print(data)
                    try:
                        sql = """INSERT into users (username,password,soft_delete,is_active,role,email_id) values(%s,%s,%s,%s,%s,%s)"""
                        info = (data['username'], password, soft_delete,
                                is_active, data['role'], data['email_id'])
                        cursor.execute(sql, info)
                        conn.commit()
                        cursor.close()
                        conn.close()
                    except Exception as e:
                        cursor.close()
                        conn.close()
                        helpers.getErrorLine()
                        Log.log_error(e)
                        return jsonify(
                            {'message': 'User Not Created, Please Try Again!'})
                    return jsonify({
                        'message': 'Created Successfully.',
                        'data': data
                    })
            except Exception as e:
                cursor.close()
                conn.close()
                helpers.getErrorLine()
                Log.log_error(e)
            return jsonify({'message': 'Some Error Occured!'})
        return jsonify(
            {'message': 'You are not authorized to access this endpoint!'})
    return jsonify({'message': 'accessToken issue! Pls login again'})
Esempio n. 5
0
def update_article():
    '''
    This function will update single article along with its respective tags.
    '''

    data = request.get_json()

    article_id = data.get('id', None)
    author = data.get('author', None)
    title = data.get('title', None)
    description = data.get('description', None)
    tags = data.get('tags', None)

    conn = db_connection()
    cursor = conn.cursor()
    try:
        sql = "update article set author = %s,title = %s,description = %s where id = %s"  # This query will check if the article already exist.
        info = (author, title, description, article_id)
        response = cursor.execute(sql, info)
        conn.commit()

        if len(tags) > 0:
            id = article_id
            for obj in tags:
                sql2 = "UPDATE tags set tag = %s where article_id = %s"
                cursor.execute(sql2, (obj, id))
                response = cursor.execute(sql, info)
                conn.commit()
    except Exception as e:
        helpers.getErrorLine()
        Log.log_error(e)
        cursor.close()
        conn.close()
        return jsonify({'success': False, 'message': "Please update"})
    return jsonify({'success': True, 'message': "Data Updated Successfully!"})
    cursor.close()
    conn.close()
Esempio n. 6
0
def create_article():
    '''
    This function will create article.
    '''
    data = request.get_json()
    author = data.get('author', None)
    title = data.get('title', None)
    description = data.get('description', None)
    tags = data.get('tags', None)
    response = None

    if author is not None and title is not None and tags is not None and description is not None:
        if (len(author) != 0 and len(title) != 0 and len(tags) != 0
                and len(description) != 0):

            conn = db_connection()
            cursor = conn.cursor()
            try:
                sql = "select title from article where title = %s"  # This query will check if the article already exist.
                info = (title, )
                response = cursor.execute(sql, info)
                title_data = len(cursor.fetchall())
                if title_data:
                    return jsonify({
                        'success': False,
                        'message': "Article title already exist"
                    })

            except Exception as e:
                helpers.getErrorLine()
                Log.log_error(e)
                cursor.close()
                conn.close()
                return jsonify({
                    'success':
                    False,
                    'message':
                    "Some Error Occured.Please Try again later"
                })

            try:
                sql = """INSERT into article (title,description,author) values(%s,%s,%s)"""
                info = (title, description, author)
                response = cursor.execute(sql, info)

                conn.commit()

            except Exception as e:
                helpers.getErrorLine()
                Log.log_error(e)
                cursor.close()
                conn.close()

            if response:
                article_id = cursor.lastrowid
                tag_data = [(article_id, obj) for obj in tags]

                try:
                    sql2 = "INSERT INTO tags (article_id,tag) VALUES (%s, %s)"
                    cursor.executemany(sql2, tag_data)
                    conn.commit()
                except Exception as e:
                    helpers.getErrorLine()
                    Log.log_error(e)
                cursor.close()
                conn.close()
            return jsonify({
                'success':
                True,
                'message':
                "Hurray! you have created article successfully!"
            })
        return jsonify({'success': False, 'message': "Some Param is empty"})
    return jsonify({'success': False, 'message': "Some Param is missing"})