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})
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" })
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'})
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'})
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()
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"})