def fibCeiling(fibMethod,fibItem): apiFace = Face(appStats,'/ceiling/'+fibMethod,request.method,'Generate a Fibonacci sequence with max value one sequence item higher than '+fibItem+' using method '+fibMethod) if int(fibItem) < 0: return apiFace.response(appStats,'Pass',apiFace.listToJson([0])) try: methodLoad = __import__(fibMethod) dynLoad = 'methodLoad.'+fibMethod+'()' fib = eval(dynLoad) list1 = fib.fibCeil(int(fibItem)) except: return apiFace.response(appStats,'Fail',fibMethod+' returned an error') else: return apiFace.response(appStats,'Pass',apiFace.listToJson(list1))
def fibFloor(fibMethod,fibItem): apiFace = Face(appStats,'/floor/'+fibMethod,request.method,'Generate a Fibonacci sequence with max value less than '+fibItem+' using method '+fibMethod) if int(fibItem) < 0: return apiFace.response(appStats,'Fail',"API does not support negative target values") try: methodLoad = __import__(fibMethod) dynLoad = 'methodLoad.'+fibMethod+'()' fib = eval(dynLoad) list1 = fib.fibFloor(int(fibItem)) except: return apiFace.response(appStats,'Fail',fibMethod+' returned an error') else: return apiFace.response(appStats,'Pass',apiFace.listToJson(list1))
def fibSequence(fibMethod,fibLen): apiFace = Face(appStats,'/sequence/'+fibMethod,request.method,'Generate a Fibonacci sequence with '+fibLen+' elements using method '+fibMethod) if int(fibLen) < 0: return apiFace.response(appStats,'Fail',"API does not allow negative length") try: methodLoad = __import__(fibMethod) dynLoad = 'methodLoad.'+fibMethod+'()' fib = eval(dynLoad) list1 = fib.fibList(int(fibLen)) except: return apiFace.response(appStats,'Fail',fibMethod+' returned an error') else: return apiFace.response(appStats,'Pass',apiFace.listToJson(list1))
def apiList(): apiFace = Face(appStats,'/apiList/',request.method,"List of available API endpoints") links = [] for rule in app.url_map.iter_rules(): if rule.endpoint != 'static': links.append(rule.endpoint) return apiFace.response(appStats,'Pass',apiFace.listToJson(sorted(links)))
def not_found(error=None): apiFace = Face(appStats,'404 Error',request.method,'URL not found') links = [] for rule in app.url_map.iter_rules(): if rule.endpoint != 'static': links.append(rule.endpoint) return apiFace.response(appStats,'401 Error',apiFace.listToJson(sorted(links)))