Sindbad~EG File Manager
from flask import request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json
from core.model.FirebaseModel import FirebaseModel
from core.model.BadgeModel import BadgeModel
from .. import Cryptography,Helper
from flask import app
from random import randint
import datetime
from datetime import timedelta,date,datetime,time
from werkzeug.utils import secure_filename
from os.path import join, dirname, realpath
import os
# import pandas as pd
# import numpy as np
# import ast
import csv
from io import StringIO
import io
from flask import Response
import xlwt
from flask import Flask, make_response
import pyexcel as pe
# from core.library.BackgroundTasks import BackgroundTasks
# import for img upload
import os
import base64
import boto3, botocore
from botocore.exceptions import ClientError
from PIL import Image
from firebase_admin import messaging,exceptions
import firebase_admin
from firebase_admin import auth,credentials
# from werkzeug.utils import secure_filename
app = Blueprint('firebase', __name__)
#----------------------- Firebase -------------------------------
# Save FCM Token from Mobile-app
@app.route('/save_fcm_token', methods =["GET","POST"])
def SaveFcmToken():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
fb_user_id = 0
try:
conf_id = request.values.get('conf_id') or None
user_id = request.values.get('user_id') or None
app_name = request.values.get('app_name') or None
device_type = request.values.get('device_type') or None
fcm_token = request.values.get('fcm_token') or None
fb_user_id = request.values.get('fb_user_id') or None
fb_user_id = int(fb_user_id) if fb_user_id else None
user_id = int(user_id) if user_id else None
if fb_user_id and user_id :
api_data = {"user_id" : user_id , "updated_at" : current_dt }
save_fcm_token_data = FirebaseModel().UpdateFCMData(api_data,fb_user_id)
else :
api_data = {"conf_id" : conf_id,"user_id" : user_id,"app_name" : app_name,"device_type" : device_type,
"fcm_token" : fcm_token,"created_at" : current_dt }
check_already_reg = FirebaseModel().getUserDataByToken(conf_id,fcm_token)
if check_already_reg :
fb_user_id = check_already_reg["fb_user_id"]
if user_id and user_id > 0 :
api_data = {"user_id" : user_id , "updated_at" : current_dt }
save_fcm_token_data = FirebaseModel().UpdateFCMData(api_data,fb_user_id)
data = {"fb_user_id" : fb_user_id, "fcm_token" : fcm_token, "msg" : "Your firebase token has been already registered." , "status" : 1 }
json_data = json.dumps(data,default=str)
return json_data
else :
save_fcm_token_data = FirebaseModel().insertFCMData(api_data)
res_msg = save_fcm_token_data["msg"]
if res_msg == "success" :
fb_user_id = save_fcm_token_data["fb_user_id"]
if res_msg == "success" :
data = {"fb_user_id" : fb_user_id, "fcm_token" : fcm_token, "msg" : "Successfully saved" , "status" : 1 }
else :
data = {"fb_user_id" : fb_user_id,"fcm_token" : fcm_token , "msg" : res_msg , "status" : 3 }
json_data = json.dumps(data,default=str)
return json_data
except Exception as e:
data = {"fb_user_id" : fb_user_id , "fcm_token" : " " , "msg" : str(e) , "status" : 401 }
json_data = json.dumps(data,default=str)
return json_data
# WEB PAGE - RAMYA
@app.route('/<int:conf_id>/<conf_key>/fb_notification', methods = ["GET","POST"])
def FBNotification(conf_id,conf_key):
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
if get_conf :
get_data = FirebaseModel().get_fb_notification(conf_id)
json_data = json.dumps(get_data,default= str)
# return json_data
html_data = render_template("firebase/firebase_notification_table.html",conf_id=conf_id,conf_key=conf_key,fb_data = get_data)
# return html_data
return render_template('firebase/firebase_notification.html',html_data=html_data,conf_id=conf_id,conf_key=conf_key,get_conf=get_conf)
else:
return "<h1>Invalid URL</h1>"
@app.route('/<int:conf_id>/<conf_key>/post_fb_notification', methods = ["GET","POST"])
def PostFBNotification(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
msg = ""
image_name = None
image_path = None
is_update = request.values.get('is_update') or 0
notification_id = request.values.get('notification_id',None) or None
notification_title = request.values.get('notification_title')
notification_content = request.values.get('notification_content',None) or None
send_user = request.values.get('send_user',None) or None
image_data = request.values.get('image_data',None) or None
file_name = request.values.get('file_name',None) or None
is_send = request.values.get('is_send') or 0
if int(is_send) == 1 :
sent_at = now.strftime("%Y-%m-%d %H:%M:%S")
else:
sent_at = None
if file_name is None:
file_upload = None
else:
file_upload = AwsFileUpload(file_name,image_data)
# If file upload function call then this block will execute
if file_upload :
file_upload = ast.literal_eval(file_upload)
file_upload_msg = file_upload["msg"]
file_upload_status = file_upload["status"]
if file_upload_status == 1 :
image_path = file_upload["image_path"] or None
image_name = file_upload["image_name"] or None
file_name = image_path + image_name
else :
return file_upload_msg
if int(is_update) == 1:
update_data = { "notification_title" : notification_title,"notification_content" : notification_content,
"send_user" : send_user,"image": image_data,"updated_at": current_dt}
updated_data = FirebaseModel().update_fb_notification(notification_id,update_data)
if updated_data == "success":
msg = "Updated Successfully.."
else:
msg = str(updated_data)
else :
insert_data = {"conf_id" : conf_id,"notification_title" : notification_title,"notification_content":notification_content,
"send_user": send_user,"image": image_data,"sent_at": sent_at,"created_at": current_dt }
inserted_data = FirebaseModel().insert_fb_notification(insert_data)
if int(is_send) == 1 :
# send Function
fcm_token = None
user_id = None
device_type = None
fb_message = None
insert_logs_data = { "fcm_token" : fcm_token,"user_id": user_id,"conf_id": conf_id,"fb_user_id" : fb_user_id,
"notification_title": notification_title,"notification_content" : notification_content,"image": image_data,
"send_user": send_user,"device_type": device_type,"send_at": current_dt,"created_at" : current_dt }
insert_data = FirebaseModel().insert_notification_logs(insert_logs_data)
msg = str(data['notification_title'])+" notification save and send successfully"
# send Function
else :
msg = "Added Successfully.."
get_data = FirebaseModel().get_fb_notification(conf_id)
html_data = render_template("firebase/firebase_notification_table.html",conf_id=conf_id,conf_key=conf_key,fb_data = get_data)
data = { "html_data" : html_data,"msg" :msg,"status" : 1 }
except Exception as e:
data = { "msg" :str(e),"status" : 401 }
return json.dumps(data,default =str)
# Ganesan J
@app.route('<int:conf_id>/<conf_key>/send_fbn',methods =["GET","POST"])
def SendFBN(conf_id,conf_key):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
total_count = 0
success_count = 0
failure_count = 0
analytics_data = {}
all_data = []
user = {}
is_all_user = 1
is_loggedin_user = 0
is_commitment_user = 0
condition = ''
device_type = request.values.get("device_type") or 'Android'
notification_id = request.values.get("notification_id") or None
is_loggedin_user= request.values.get("is_loggedin_user") or 0 # updated on Jan 06,2024
notification_id = int(notification_id) if notification_id else None
conf_id = int(conf_id) if conf_id else None
is_loggedin_user = int(is_loggedin_user) if is_loggedin_user else is_loggedin_user
if not notification_id and not conf_id :
analytics_data = {"total_count" : 0 , "success_count" : 0 , "failure_count" : 0}
data = {"analytics_data" : analytics_data , "msg" : "Notification Id and Conference Id both are need. " , "status" : 2}
return json.dumps(data,default=str)
if not firebase_admin._apps:
FIRBASE_PATH = "core/static/firebase_config"
filename = "boa-mobileapp-firebase-adminsdk.json"
json_file = os.path.join(FIRBASE_PATH, filename)
cred = credentials.Certificate(json_file)
firebase_admin.initialize_app(cred)
try:
notify_data = FirebaseModel().get_fb_notification_by_id(notification_id)
if not notify_data :
analytics_data = {"total_count" : 0 , "success_count" : 0 , "failure_count" : 0}
data = {"analytics_data" : analytics_data , "msg" : "Record does not exists for given notification id. " , "status" : 3 }
return json.dumps(data,default=str)
else :
notification_title = notify_data["notification_title"]
notification_content = notify_data["notification_content"]
send_user = notify_data["send_user"]
image = notify_data["image"]
notification_type = notify_data["notification_type"]
notification_id = notify_data["notification_id"]
fb_user = FirebaseModel().getFBUserData(conf_id,device_type,is_all_user,is_loggedin_user,is_commitment_user)
# return ( json.dumps(fb_user,default=str) )
if fb_user :
for index,value in enumerate(fb_user) :
total_count = total_count + 1
fcm_token = value["fcm_token"]
user["fcm_token"] = fcm_token
conf_id = value["conf_id"]
user_id = value["user_id"]
user["fb_user_id" ]= value["fb_user_id"]
user["device_type"] = value["device_type"]
user["notification_title"] = notify_data["notification_title"]
user["send_user"] = send_user
user["send_at"] = curr_dt
user["created_at"] = curr_dt
user["conf_id"] = conf_id
user["notification_id"] = notification_id
if is_loggedin_user and int(is_loggedin_user) > 0 :
prefix = value["prefix"]
full_name = value["full_name"]
full_name = "Dr. " + value["full_name"] if not value["prefix"] else value["prefix"] + " " + value["full_name"]
merge_data = {'NAME':full_name}
notification_content = Helper.merge_tags(notify_data["notification_content"],merge_data)
user["notification_content"] = notification_content
# See documentation on defining a message payload.
# start
if image :
user["image"] = image
message = messaging.Message(
notification=messaging.Notification(
title=notification_title,
body=notification_content,
image =image,
),
token=fcm_token
)
else :
message = messaging.Message(
notification=messaging.Notification(
title=notification_title,
body=notification_content,
),
token=fcm_token
)
try:
response = messaging.send(message)
# response = "Success"
suc_msg = "Successfully sent message: " + response
user["fb_message"] = suc_msg
success_count = success_count + 1
except messaging.UnregisteredError:
failure_count = failure_count +1
user["fb_message"] = 'Error: Registration token is no longer valid'
except Exception as e:
print('Error:', str(e))
all_data.append(user)
get_data = FirebaseModel().saveNotificationLogsMysql(conf_id,user)
# end
user = {}
# return json.dumps(all_data,default=str)
# FirebaseModel().insert_demo_del_sqlite( all_data)
analytics_data["conf_id"] = conf_id
analytics_data["notification_id"] = notification_id
analytics_data["total_count"] = total_count
analytics_data["success_count"] = success_count
analytics_data["failure_count"] = failure_count
analytics_data["created_at"] = curr_dt
analytics_data["send_at"] = curr_dt
# Insert into logs
FirebaseModel().saveNotificationReports(conf_id,analytics_data)
json_data = json.dumps(analytics_data ,default =str)
return json_data
return_msg = "Firebase notification has been successfully sent. Total user count : " + str(total_count)
return return_msg
except Exception as e:
return str(e)
print('Successfully sent message:', response)
return "Notification Successfully sent"
# Ramya Code Start ---------------------
@app.route('/<int:conf_id>/<conf_key>/edit_fb_notification', methods = ["GET","POST"])
def EditFBNotification(conf_id,conf_key):
try:
notification_id = request.values.get('notification_id' ,None) or None
if notification_id:
edit_data = FirebaseModel().get_fb_notification_by_id(notification_id)
data = { "edit_data" : edit_data,"msg" :"success","status" : 1 }
else:
data = { "msg" :"No Data","status" : 2 }
return json.dumps(data,default =str)
except Exception as e:
data = { "msg" :str(e),"status" : 401 }
return json.dumps(data,default =str)
@app.route('/<int:conf_id>/<conf_key>/apply_file_upload', methods = ["GET","POST"])
def ApplyFileUpload(conf_id,conf_key):
try:
image_data = request.values.get('image_data',None) or None
file_name = request.values.get('file_name',None) or None
if file_name:
file_upload = AwsFileUpload(conf_key,file_name,image_data)
else:
file_upload = None
# If file upload function call then this block will execute
if file_upload :
file_upload = ast.literal_eval(file_upload)
file_upload_msg = file_upload["msg"]
file_upload_status = file_upload["status"]
if file_upload_status == 1 :
return json.dumps(file_upload,default =str)
else :
data = { "msg" :str(file_upload_msg),"status" :2 }
return json.dumps(data,default =str)
except Exception as e:
data = { "msg" :str(e),"status" : 401 }
return json.dumps(data,default =str)
# AWS File upload start
def AwsFileUpload(conf_key,file_name,image_data):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
image_name = None
image_path = None
bucket = "aws-s3store"
try:
if file_name:
if image_data:
split_tup = os.path.splitext(file_name)
file_name = split_tup[0]
file_extension = split_tup[1]
filename_str = str(conf_key)+"fb_notification_"+ datetime.now().strftime("%Y%m%d-%H%M%S") +file_extension
if " " in filename_str :
filename_str = filename_str.replace(" ","")
foldername = "mobile-app/"
acl = "public-read"
s3 = boto3.client("s3",aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ',aws_secret_access_key='EEudWCsWeCIt/J9/z5m5htmUdGFJNzWFPvNQBIp/')
image_data = base64.b64decode(image_data.split(',')[1])
image = Image.open(io.BytesIO(image_data))
if image.mode == 'RGBA':
image = image.convert('RGB')
image.save(os.path.join('core/static/temp_images', filename_str))
img_path = os.path.join('core/static/temp_images/'+ filename_str)
with open(img_path, 'rb') as f:
response = s3.upload_fileobj(f,bucket,foldername+filename_str, ExtraArgs={"ACL": acl, "ContentType": "image/jpeg"})
os.remove('core/static/temp_images/'+ filename_str)
data_1 = {'bucketname' : bucket,'foldername':foldername,'file_name':filename_str+"?"+str(Helper.getcurrenttimestamp()),'msg':'Image successfully uploded','file_extension':file_extension,'status':1}
file_path = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/"+foldername
image_path = file_path
image_name = filename_str
msg = "Added Successfully"
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : msg, "status" : 1 }
else :
msg = "File name is not exists."
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : msg, "status" : 2 }
return json.dumps(return_data,default =str)
else :
msg = "File not exists. Please try again"
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : msg, "status" : 3 }
return json.dumps(return_data,default =str)
except ClientError as e:
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : str(e), "status" : 401 }
return json.dumps(return_data,default =str)
# Purpose : To view Notification logs
# http://127.0.0.1:5003/view_fb_notification?conf_id=26&fcm_token=dZynP8UsTO2ais3zrTZYT5:APA91bEgk6jeozo6pNRGftLxw4GL1hs_iK3_bB27sa-paD-hkaN3tpnNZmqUsBysOc-48ZsQ0vRa5jO5_N_X1NqTTZu8aU-jo0s9YyzJokYhYnVSd6eyeL41uqPLZWKNubTx-lydjELZ
@app.route('/view_fb_notification', methods = ["GET","POST"])
def ViewFBNotification():
conf_id = request.values.get('conf_id') or None
fcm_token = request.values.get("fcm_token") or None
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
if get_conf :
fcm_token = request.values.get('fcm_token') or None
get_data = FirebaseModel().GetNotificationLogsMysql(conf_id,fcm_token)
return render_template('firebase/view_fb_notification.html',notification_logs = get_data,conf_id=conf_id,get_conf=get_conf)
else:
return "<h1>Invalid URL</h1>"
# http://192.168.1.6:5003/26/boa24/notify_logs
@app.route('/notify_logs', methods = ["GET","POST"])
def NotifyLogs():
conf_id = request.values.get('conf_id') or None
fcm_token = request.values.get('fcm_token') or None
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
if get_conf :
fcm_token = request.values.get('fcm_token') or None
get_data = FirebaseModel().get_del_data_in_sqlite( conf_id)
if get_data :
get_data = FirebaseModel().saveNotificationLogsMysql(conf_id,get_data)
delete_sqlite = FirebaseModel().deleteSqliteNotificationLogs(conf_id)
else :
get_data = FirebaseModel().GetNotificationLogsMysql(conf_id,fcm_token =None)
# json_data = json.dumps()
return render_template('firebase/view_fb_notification.html',notification_logs = get_data,conf_id=conf_id,get_conf=get_conf)
else:
return "<h1>Invalid URL</h1>"
# http://127.0.0.1:5003/remove_userid?conf_id=26&fb_user_id=2&user_id=45661
@app.route('/remove_userid', methods =["GET","POST"])
def RemoveUserId():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
posted_data = request.json
fb_user_id = None
user_id = None
for index,value in enumerate(posted_data) :
conf_id = value["conf_id"]
user_id = value["user_id"]
fb_user_id = value["fb_user_id"]
# data = jsonify(posted_data)
# conf_id = posted_data["conf_id"] or None
# user_id = posted_data["user_id"] or None
# fb_user_id = posted_data["fb_user_id"] or None
try:
if fb_user_id and user_id :
fbusers = FirebaseModel().checkFBUser(fb_user_id,user_id ,conf_id)
if fbusers :
api_data = {"user_id" : None , "updated_at" : current_dt }
remove_user_id = FirebaseModel().UpdateFCMData(api_data,fb_user_id)
res_msg = remove_user_id["msg"]
if res_msg == "success" :
data = {"msg" : res_msg , "status" : 1 }
else :
data = {"msg" : res_msg , "status" : 2 }
else :
data = {"msg" : "User-id invalid" , "status" : 3 }
else :
data = {"msg" : "User-id invalid" , "status" : 4 }
json_data = json.dumps(data,default=str)
return json_data
except Exception as e:
data = {"msg" : str(e) , "status" : 401 }
json_data = json.dumps(data,default=str)
return json_data
# Commitment Content
@app.route('<int:conf_id>/<conf_key>/send_commitment_fbn',methods =["GET","POST"])
def SendCommitmentFBN(conf_id,conf_key):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
total_count = 0
success_count = 0
failure_count = 0
analytics_data = {}
all_data = []
user = {}
is_all_user = 0
is_loggedin_user = 1
is_commitment_user = 1
send_user = "Commitment"
condition = ''
notification_title = request.values.get("notification_title") or 'Commitment' # updated on Jan 06,2024
notification_type = "Commitment"
conf_id = int(conf_id) if conf_id else None
if not firebase_admin._apps:
FIRBASE_PATH = "core/static/firebase_config"
filename = "boa-mobileapp-firebase-adminsdk.json"
json_file = os.path.join(FIRBASE_PATH, filename)
cred = credentials.Certificate(json_file)
firebase_admin.initialize_app(cred)
try:
fb_user = FirebaseModel().getFBCommitmentUser(conf_id)
# return ( json.dumps(fb_user,default=str) )
if fb_user :
for index,value in enumerate(fb_user) :
total_count = total_count + 1
fcm_token = value["fcm_token"]
user["fcm_token"] = fcm_token
user_id = value["user_id"]
user["fb_user_id" ]= value["fb_user_id"]
user["device_type"] = value["device_type"]
user["full_name"] = value["full_name"]
notification_content= value["notification_content"]
user["notification_content"] = value["notification_content"]
user["send_user"] = send_user
user["send_at"] = curr_dt
user["created_at"] = curr_dt
user["conf_id"] = conf_id
user["notification_title"] = notification_title
# merge_data = {'NAME':full_name}
# notification_content = Helper.merge_tags(notify_data["notification_content"],merge_data)
message = messaging.Message(
notification=messaging.Notification(
title=notification_title,
body=notification_content,
),
token=fcm_token
)
try:
response = messaging.send(message)
# response = "success"
suc_msg = "Successfully sent message: " + response
user["fb_message"] = suc_msg
success_count = success_count + 1
except messaging.UnregisteredError:
failure_count = failure_count +1
user["fb_message"] = 'Error: Registration token is no longer valid'
except Exception as e:
print('Error:', str(e))
all_data.append(user)
# return ( json.dumps(all_data,default=str) )
get_data = FirebaseModel().saveNotificationLogsMysql(conf_id,user)
# end
user = {}
analytics_data["total_count"] = total_count
analytics_data["success_count"] = success_count
analytics_data["failure_count"] = failure_count
analytics_data["created_at"] = curr_dt
analytics_data["send_at"] = curr_dt
# Insert into logs
FirebaseModel().saveNotificationReports(conf_id,analytics_data)
json_data = json.dumps(analytics_data ,default =str)
return json_data
return_msg = "Firebase notification has been successfully sent. Total user count : " + str(total_count)
return return_msg
except Exception as e:
return str(e)
print('Successfully sent message:', response)
return "Notification Successfully sent"
# conf-web-app
# ----------------------------------------------
# Created on 2024-01-18 10:01 by Ramya
# Purpose : To View Notification by notification_id index
@app.route('/<int:conf_id>/<conf_key>/notification_index', methods = ["GET","POST"])
def NotificationIndex(conf_id,conf_key):
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
notification_id = request.values.get("notification_id") or None
fb_user_id = None
if get_conf :
data = FirebaseModel().get_usp_notification_index(conf_id,notification_id,fb_user_id)
for index,value in enumerate(data):
if index == 0:
notify_title = value[0]
if index == 1:
notify_index = value
if notify_title is None:
return "<h4 style='color:red;text-align:center;margin-top:15px;'>Invalid Notification Id</h4>"
else :
return render_template('firebase/notification_index.html',conf_id=conf_id,conf_key=conf_key,get_conf=get_conf,notify_index=notify_index,notify_title=notify_title)
else:
return "<h4 style='color:red;text-align:center'>Invalid URL</h4>"
# Purpose : To View FB Users index
@app.route('/<int:conf_id>/<conf_key>/fb_user_index', methods = ["GET","POST"])
def FBUserIndex(conf_id,conf_key):
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
if get_conf :
data = FirebaseModel().get_usp_notification_index(conf_id,None,None)
for index,value in enumerate(data):
if index == 0:
fb_index_data = value
return render_template('firebase/fb_user_index.html',conf_id=conf_id,conf_key=conf_key,get_conf=get_conf,fb_index_data=fb_index_data)
else:
return "<h1>Invalid URL</h1>"
# Purpose : To View FB Users Notification
@app.route('/<int:conf_id>/<conf_key>/<int:fb_user_id>/fb_users_notification_index', methods = ["GET","POST"])
def FBUsersNotificationIndex(conf_id,conf_key,fb_user_id):
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
if get_conf :
data = FirebaseModel().get_usp_notification_index(conf_id,None,fb_user_id)
for index,value in enumerate(data):
if index == 0:
fb_user_data = value
if index == 1:
fb_logs_data = value
fb_user_data = fb_user_data[0]
return render_template('firebase/fb_user_notification_index.html',conf_id=conf_id,conf_key=conf_key,get_conf=get_conf,fb_logs_data=fb_logs_data,fb_user_data=fb_user_data)
else:
return "<h1>Invalid URL</h1>"
# Purpose : To view Notification Log Count in Graphical View
@app.route('/<int:conf_id>/<conf_key>/view_fb_report', methods = ["GET","POST"])
def ViewFBReport(conf_id,conf_key):
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
notification_id = request.values.get("notification_id") or None
if get_conf :
if notification_id :
data = FirebaseModel().get_usp_notification_index(conf_id,notification_id,None)
for index,value in enumerate(data):
if index == 0:
notify_title = value
if index == 3:
fb_report = value
if notify_title :
notify_title = notify_title[0]
if fb_report :
fb_report = fb_report[0]
label_name = ['Success', 'Failure', 'Total']
pie_chart = {'send_at': fb_report['send_at'],'label': label_name,'success_count' : fb_report['success_count'],'failure_count' : fb_report['failure_count'],'total_count' : fb_report['total_count']}
else :
fb_report = None
pie_chart = None
label_name = None
return render_template('firebase/fb_reports.html',conf_id=conf_id,conf_key=conf_key,pie_chart=pie_chart,notify_title=notify_title,get_conf=get_conf,str=str)
else :
return "<h3 style='color:red;text-align:center;'>No Record Found</h3>"
else:
return "<h3 style='color:red;text-align:center;'>Invalid URL</h3>"
else:
return "<h3 style='color:red;text-align:center;'>Invalid URL</h3>"
# ----------------------------------------------
# Purpose : To Update Full name in fb_users table
@app.route('/<int:conf_id>/<conf_key>/update_fb_user_fullname', methods = ["GET","POST"])
def UpdateFBUserName(conf_id,conf_key):
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
get_conf = FirebaseModel().GetConfFirebaseModel(conf_id)
if get_conf :
update_and_get_count = FirebaseModel().update_fbuser_name(conf_id,current_dt)
if update_and_get_count:
if update_and_get_count['total_updated_count'] == 0 :
flash("Already Updated.","successMsg")
else:
flash("<b> "+str(update_and_get_count['total_updated_count'])+"</b> FB User's Name Updated successfully.","successMsg")
else:
flash(str(update_and_get_count),"errorMsg")
return redirect (url_for('firebase.FBNotification',conf_id=conf_id,conf_key=conf_key))
else:
return "<h1>Invalid URL</h1>"
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists