def confirm_email(): print('auth/confirm_email') data = {} keys = ['token'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) user = model.User.find_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) user.email_verify = True model.add(user) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def signin(): print('auth/siginin') data = {} keys = ['email', 'password'] try: for key in keys: data[key] = get_request(key, None) password = hashlib.md5(data['password'].encode()).hexdigest() user = model.User.find_by_email_and_password(data['email'], password) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.auth_error, 'message': model.ResponseText.auth_error, }) # if not user.email_verify: # return json_response({ # 'success': False, # 'errcode': model.ResponseCode.require_email_verify, # 'message': model.ResponseText.require_email_verify, # }) return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': user.to_dict(), }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def admin_getuserbyrole(): print('admin/getuserbyrole') data = {} keys = ['token', 'role'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '' or \ data['role'] is None or data['role'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) user = model.User.find_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) results = [ person.to_dict() for person in model.User.get_by_role(data['role']) ] return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': results }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def basket_getbyuserid(): print('basket/getbyuserid') data = {} keys = ['token', 'userid'] try: for key in keys: data[key] = get_request(key, None) if data['userid'] is None or data['userid'] == '' or \ data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) # user = model.Basket.user_by_token(data['token']) # if not user: # return json_response({ # 'success': False, # 'errcode': model.ResponseCode.no_exist, # 'message': model.ResponseText.no_exist, # }) cart = model.Basket.get_by_userid(data['userid']) # cart = model.Basket.get_by_status(0) results = [order.to_dict() for order in cart] return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': results }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def farm_delete(): print('farm/delete') data = {} keys = ['id'] try: for key in keys: data[key] = get_request(key, None) if data['id'] is None or data['id'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) farm = model.Farm.get_by_id(data['id']) model.delete(farm) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def basket_getbyids(): print('basket/getbyids') data = {} keys = ['token','ids'] try: for key in keys: data[key] = get_request(key, None) if data['ids'] is None or data['ids'] == '' or \ data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) basket = model.Basket.get_by_ids(data['ids']) results = [item.to_dict() for item in basket] return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': results }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def signup(): print('admin/signup') data = {} keys = ['email', 'password'] try: for key in keys: data[key] = get_request(key, None) if model.User.check_exist_by_email(data['email']): return json_response({ "success": False, "message": 'This email is alread used by another person.' }) password = hashlib.md5(data['password'].encode()).hexdigest() user = model.User(data['email'], password, 1) model.add(user) model.commit() return json_response({ 'success': True, 'message': 'Sign up success.', }) except: return json_response({ 'success': False, 'message': 'Error occurs. Please try again later.', })
def introduction_add(): print('introduction/add') data = {} keys = ['title', 'subtitle', 'description', 'image'] try: for key in keys: data[key] = get_request(key, None) if data['title'] is None or data['title'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) introduction = model.Introduction(data['title']) if data['subtitle'] and data['subtitle'] != '': introduction.subtitle = data['subtitle'] if data['description'] and data['description'] != '': introduction.description = data['description'] if data['image'] and data['image'] != '': introduction.image = data['image'] model.add(introduction) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def profile_getbyuserid(): print('profile/getuser') data = {} keys = ['token'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) user = model.User.find_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) return json_response({ 'success': True, 'message': model.ResponseText.success, 'results' : user.to_dict() }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def pcategory_delete(): print('category/delete') data = {} keys = ['id'] try: for key in keys: data[key] = get_request(key, None) if data['id'] is None or data['id'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) category = model.PCategory.get_by_id(int(data['id'])) model.delete(category) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def product_delete(): print('product/delete') data = {} keys = ['id'] try: for key in keys: data[key] = get_request(key, None) if data['id'] is None or data['id'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) product = model.Product.get_by_id(data['id']) product.status = 1 model.add(product) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def basket_getall(): print('basket/getall') try: data = {} keys = ['token'] for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) results = [basket.to_dict() for basket in model.Basket.get_by_status(0)] return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': results }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def basket_delete(): print('basket/delete') data = {} keys = ['token','id'] try: for key in keys: data[key] = get_request(key, None) if data['id'] is None or data['id'] == '' or \ data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) basket = model.Basket.get_by_id(int(data['id'])) model.delete(basket) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def product_getbyid(): print('product/getbyid') data = {} keys = ['id'] try: for key in keys: data[key] = get_request(key, None) if data['id'] is None or data['id'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) results = model.Product.get_by_id(int(data['id'])).to_dict() return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': results }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def order_delete(): print('order/delete') data = {} keys = ['token', 'orderid'] try: for key in keys: data[key] = get_request(key, None) if data['orderid'] is None or data['orderid'] == '' or \ data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) user = model.User.find_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) order = model.Order.get_by_id(int(data['orderid'])) model.delete(order) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def order_getbyfarmid(): print('order/getbyfarmid') data = {} keys = ['token', 'farmid', 'offset', 'limit', 'keyword'] try: for key in keys: data[key] = get_request(key, None) if data['farmid'] is None or data['farmid'] == '' or \ data['token'] is None or data['token'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) user = model.User.find_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) offset = 0 limit = 50000 keyword = '' if ('offset' in data) and data['offset'] != '': offset = int(data['offset']) if ('limit' in data) and data['limit'] != '': limit = int(data['limit']) if ('keyword' in data) and data['keyword'] != '': keyword = data['keyword'] print(keyword) orders = model.Order.get_by_farmid(data['farmid'], offset, limit, keyword)['data'] results = [] no = 1 for order in orders: result = order.to_dict() result['no'] = no results.append(result) no += 1 # results = [order.to_dict() for order in orders] allcount = model.Order.get_by_farmid(data['farmid'], offset, limit, keyword)['count'] return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': results, 'allcount': allcount }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def basket_add(): print('basket/add') data = {} keys = ['token', 'productid', 'count'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '' or \ data['productid'] is None or data['productid'] == '' or \ data['count'] is None or data['count'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) user = model.Basket.user_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) product = model.Basket.get_by_id_status(data['productid'], 0) if product: product.count += int(data['count']) model.add(product) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) basket = model.Basket() basket.userid = user.id basket.productid = data['productid'] basket.count = data['count'] basket.status = 0 model.add(basket) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def profile_changepass(): print('profile/changepass') data = {} keys = ['token', 'oldpass', 'newpass'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '' or \ data['oldpass'] is None or data['oldpass'] == '' or \ data['newpass'] is None or data['newpass'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) user = model.User.find_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) oldpass = hashlib.md5(data['oldpass'].encode()).hexdigest() if not oldpass == user.password: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_match, 'message': model.ResponseText.no_match, }) user.password = hashlib.md5(data['newpass'].encode()).hexdigest() user.token = b64encode(bytearray(user.email + ":" + user.password, 'utf-8')).decode('ascii') model.add(user) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, 'results' : user.to_dict() }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def basket_update(): print('basket/update') data = {} keys = ['token', 'id', 'count'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '' or \ data['id'] is None or data['id'] == '' or \ data['count'] is None or data['count'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) basket = model.Basket.get_by_id(data['id']) if not basket: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) if (int(data['count']) > int(basket.productinfo.count)): return json_response({ 'success': False, 'errcode': model.ResponseCode.beyond, 'message': model.ResponseText.beyond, }) basket.count = data['count'] model.add(basket) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, 'result': basket.to_dict() }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def admin_setstatus(): print('admin/setstatus') data = {} keys = ['token', 'userid', 'status'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '' or \ data['userid'] is None or data['userid'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) # admin = model.User.find_by_token(data['token']) # if not admin or admin.role != 0: # return json_response({ # 'success': False, # 'errcode': model.ResponseCode.no_exist, # 'message': model.ResponseText.no_exist, # }) user = model.User.find_by_id(data['userid']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) user.status = data['status'] model.add(user) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': user.to_dict() }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def forgotpass(): print('auth/forgotpass') data = {} keys = ['email', 'baseurl'] try: for key in keys: data[key] = get_request(key, None) if data['email'] is None or data['email'] == '' or \ data['baseurl'] is None or data['baseurl'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) email = data['email'] baseurl = data['baseurl'] user = model.User.find_by_email(data['email']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) isSend = send_mail('Forgot Password', user.email, html=render_template('user_forgotpass.html', username=user.fname + ' ' + user.lname, server=baseurl, token=user.token)) if not isSend: print('Send email failed.') return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def product_add(): print('product/add') data = {} keys = [ 'name', 'unit', 'price', 'description', 'count', 'farmid', 'categoryid', 'images' ] try: for key in keys: data[key] = get_request(key, None) if data['name'] is None or data['name'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) # if model.Product.find_by_name(data['name']): # return json_response({ # 'success': False, # 'errcode': model.ResponseCode.exist_error, # 'message': model.ResponseText.exist_error, # }) product = model.Product(data['name'], data['unit'], float(data['price']), int(data['count']), data['description']) product.images = str(data['images']) product.categoryid = data['categoryid'] product.farmid = data['farmid'] model.add(product) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, 'results': product.to_dict() }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def pcategory_add(): print('category/add') data = {} keys = ['name', 'image'] try: for key in keys: data[key] = get_request(key, None) if data['name'] is None or data['name'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) if data['image'] is None or data['image'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_param, 'message': model.ResponseText.bad_param, }) if model.PCategory.find_by_name(data['name']): return json_response({ 'success': False, 'errcode': model.ResponseCode.exist_error, 'message': model.ResponseText.exist_error, }) category = model.PCategory(data['name']) category.image = data['image'] model.add(category) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })
def resetpass(): print('auth/resetpass') data = {} keys = ['token', 'password'] try: for key in keys: data[key] = get_request(key, None) if data['token'] is None or data['token'] == '' or \ data['password'] is None or data['password'] == '': return json_response({ 'success': False, 'errcode': model.ResponseCode.bad_email, 'message': model.ResponseText.bad_email, }) user = model.User.find_by_token(data['token']) if not user: return json_response({ 'success': False, 'errcode': model.ResponseCode.no_exist, 'message': model.ResponseText.no_exist, }) user.password = hashlib.md5(data['password'].encode()).hexdigest() user.token = b64encode( bytearray(user.email + ":" + user.password, 'utf-8')).decode('ascii') model.add(user) model.commit() return json_response({ 'success': True, 'message': model.ResponseText.success, }) except: return json_response({ 'success': False, 'errcode': model.ResponseCode.server_error, 'message': model.ResponseText.server_error, })