@ -5,8 +5,12 @@ import base64
import os
import os
from frappe . utils import cstr
from frappe . utils import cstr
from smart_service . apis . app_user_login import input_validation
from smart_service . apis . app_user_login import input_validation
site_name = cstr ( frappe . local . site )
base_url = os . path . expanduser (
" ~ " ) + " /frappe-bench/sites/ " + site_name + " /public "
current_db_name = frappe . conf . get ( " db_name " )
current_db_name = frappe . conf . get ( " db_name " )
def custom_rate_limit ( limit , seconds ) :
def custom_rate_limit ( limit , seconds ) :
ip_based = True
ip_based = True
ip = frappe . local . request_ip if ip_based is True else None
ip = frappe . local . request_ip if ip_based is True else None
@ -24,6 +28,7 @@ def custom_rate_limit(limit, seconds):
return " You hit the rate limit because of too many requests. Please try after sometime. "
return " You hit the rate limit because of too many requests. Please try after sometime. "
return 1
return 1
@frappe . whitelist ( )
@frappe . whitelist ( )
def addon ( args = None ) :
def addon ( args = None ) :
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
@ -31,8 +36,8 @@ def addon(args=None):
return rate_res
return rate_res
# if args == None:
# if args == None:
# return {"status": 0, "error": "Parameter missing: args"}
# return {"status": 0, "error": "Parameter missing: args"}
val = input_validation ( args = args )
val = input_validation ( args = args )
if val != ' ' :
if val != ' ' :
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
if args :
if args :
@ -70,7 +75,8 @@ def addon(args=None):
elif args == " teknet_module " :
elif args == " teknet_module " :
api = frappe . db . get_list (
api = frappe . db . get_list (
" Teknet Module " ,
" Teknet Module " ,
fields = [ " name " , " teknet_module_name " , " active_status " , " flvl_id " ] ,
fields = [ " name " , " teknet_module_name " ,
" active_status " , " flvl_id " ] ,
)
)
for i in api :
for i in api :
if i [ " active_status " ] == " Active " :
if i [ " active_status " ] == " Active " :
@ -82,7 +88,8 @@ def addon(args=None):
api = frappe . get_doc ( ' User Manual ' )
api = frappe . get_doc ( ' User Manual ' )
else :
else :
api = { " status " : 0 , " error " : " No such function. Check argument: args " }
api = { " status " : 0 ,
" error " : " No such function. Check argument: args " }
except Exception as e :
except Exception as e :
api = { " status " : 0 , " error " : " Module not available " }
api = { " status " : 0 , " error " : " Module not available " }
@ -98,8 +105,8 @@ def bookmark(args=None, request=None):
if rate_res != 1 :
if rate_res != 1 :
return rate_res
return rate_res
val = input_validation ( args = args , request = request )
val = input_validation ( args = args , request = request )
if val != ' ' :
if val != ' ' :
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
# if args == None and request == None:
# if args == None and request == None:
# return {"status": 0, "error": "Parameter's missing: args & request"}
# return {"status": 0, "error": "Parameter's missing: args & request"}
@ -160,8 +167,8 @@ def feedback(args=None, request=None):
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
if rate_res != 1 :
if rate_res != 1 :
return rate_res
return rate_res
val = input_validation ( args = args , request = request )
val = input_validation ( args = args , request = request )
if val != ' ' :
if val != ' ' :
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
# if args == None and request == None:
# if args == None and request == None:
# return {"status": 0, "error": "Parameter's missing: args & request"}
# return {"status": 0, "error": "Parameter's missing: args & request"}
@ -176,8 +183,8 @@ def feedback(args=None, request=None):
request = json . loads ( request )
request = json . loads ( request )
api = frappe . db . sql (
api = frappe . db . sql (
''' SELECT name,feedback_type,subject,status,concat(DATE(date), " T " ,time(date)) as date,user_name,attachments,description FROM {0} .`tabUser Feedback` where user_name = ' {1} ' ; '''
''' SELECT name,feedback_type,subject,status,concat(DATE(date), " T " ,time(date)) as date,user_name,attachments,description FROM {0} .`tabUser Feedback` where user_name = ' {1} ' ; '''
. format ( current_db_name ,
. format ( current_db_name ,
frappe . db . get_value ( ' App Users ' , { ' user_id ' : request [ ' UserID ' ] } , [ ' name ' ] ) ) ,
frappe . db . get_value ( ' App Users ' , { ' user_id ' : request [ ' UserID ' ] } , [ ' name ' ] ) ) ,
as_dict = True )
as_dict = True )
for i in api :
for i in api :
@ -217,7 +224,7 @@ def feedback(args=None, request=None):
file_name = x
file_name = x
file_data = f [ x ]
file_data = f [ x ]
file_url = " /home/ubuntu/frappe-bench/sites/ " + site_name + " /public /files/" + file_name
file_url = base_url + " /files/ " + file_name
with open ( file_url , " wb " ) as img :
with open ( file_url , " wb " ) as img :
img . write ( base64 . b64decode ( file_data ) )
img . write ( base64 . b64decode ( file_data ) )
@ -231,7 +238,8 @@ def feedback(args=None, request=None):
ret . is_private = 0
ret . is_private = 0
ret . insert ( ignore_permissions = True )
ret . insert ( ignore_permissions = True )
file_response . append ( ret )
file_response . append ( ret )
api = { " isSuccessful " : True , " name " : usr_fdbk . name , " files " : file_response }
api = { " isSuccessful " : True ,
" name " : usr_fdbk . name , " files " : file_response }
except Exception as e :
except Exception as e :
api = { " status " : 0 , " error " : str ( frappe . get_traceback ( ) ) }
api = { " status " : 0 , " error " : str ( frappe . get_traceback ( ) ) }
else :
else :
@ -246,8 +254,8 @@ def model_hit(args=None, request=None):
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
if rate_res != 1 :
if rate_res != 1 :
return rate_res
return rate_res
val = input_validation ( args = args , request = request )
val = input_validation ( args = args , request = request )
if val != ' ' :
if val != ' ' :
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
# if args == None and request == None:
# if args == None and request == None:
# return {"status": 0, "error": "Parameter's missing: args & request"}
# return {"status": 0, "error": "Parameter's missing: args & request"}
@ -275,7 +283,8 @@ def model_hit(args=None, request=None):
model_hit . download_vehicle_date = i [ ' DownloadVehicleDate ' ]
model_hit . download_vehicle_date = i [ ' DownloadVehicleDate ' ]
model_hit . download_vehicle_language_id = i [ ' DownloadVehicleLanguageID ' ]
model_hit . download_vehicle_language_id = i [ ' DownloadVehicleLanguageID ' ]
model_hit . download_vehicle_current_version = i [ ' DownloadVehicleCurrentVersion ' ]
model_hit . download_vehicle_current_version = i [ ' DownloadVehicleCurrentVersion ' ]
model_hit . insert ( ignore_if_duplicate = True , ignore_mandatory = True )
model_hit . insert ( ignore_if_duplicate = True ,
ignore_mandatory = True )
return { " isSuccessful " : True }
return { " isSuccessful " : True }
except Exception as e :
except Exception as e :
@ -292,8 +301,8 @@ def model_usage(args=None, request=None):
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
rate_res = custom_rate_limit ( limit = 5 , seconds = 15 )
if rate_res != 1 :
if rate_res != 1 :
return rate_res
return rate_res
val = input_validation ( args = args , request = request )
val = input_validation ( args = args , request = request )
if val != ' ' :
if val != ' ' :
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
return { " status " : 0 , " error " : " Input parameter Missing: " + val }
# if args == None and request == None:
# if args == None and request == None:
# return {"status": 0, "error": "Parameter's missing: args & request"}
# return {"status": 0, "error": "Parameter's missing: args & request"}
@ -326,7 +335,8 @@ def model_usage(args=None, request=None):
model_usage . steps_id = i [ ' StepsID ' ]
model_usage . steps_id = i [ ' StepsID ' ]
model_usage . menu_id = i [ ' MenuID ' ]
model_usage . menu_id = i [ ' MenuID ' ]
model_usage . language = i [ ' Language ' ]
model_usage . language = i [ ' Language ' ]
model_usage . insert ( ignore_if_duplicate = True , ignore_mandatory = True )
model_usage . insert (
ignore_if_duplicate = True , ignore_mandatory = True )
return { " isSuccessful " : True }
return { " isSuccessful " : True }
except Exception as e :
except Exception as e :