def get_users(cls, queryParams): queryParams = json.loads(queryParams) if "f" in queryParams: # Give only selected columns f = queryParams["f"].split(',') del queryParams["f"] sql, args = data_adaptor.create_select("users", queryParams, f) res, data = data_adaptor.run_q(sql=sql, args=args, fetch=True) else: # Give all columns sql, args = data_adaptor.create_select("users", queryParams, "*") res, data = data_adaptor.run_q(sql=sql, args=args, fetch=True) if data is not None: # Compute links for each returned user for x in data: x["links"] = [{ "rel": "profile", "href": "/api/profile?userid=" + x["id"], "method": "GET" }, { "rel": "profile", "href": "/api/profile", "method": "POST" }] del x['auto_id'] if data is not None: result = data else: result = None return result
def delete_profile(cls, uuid): try: sql = "delete from ebdb.profile where user_id=%s" data_adaptor.run_q(sql=sql, args=(uuid), fetch=False) return "User deleted successfully" except Exception as e: print(e) return None
def update_profile(cls, data, uuid, stype, maintype): try: template = {"user_id": uuid, "subtype": stype, "type": maintype} sql, args = data_adaptor.create_update("ebdb.profile", data, template) data_adaptor.run_q(sql=sql, args=args, fetch=True) return "Resource updated successfully" except Exception as e: print(e) return None
def update_user(cls, email, data): try: template = {"email": email} sql, args = data_adaptor.create_update("ebdb.users", data, template) data_adaptor.run_q(sql=sql, args=args, fetch=True) return "Resource updated successfully" except Exception as e: print(e) return None
def update_profile_entry(cls, profile_entry): required = { "userid", "element_type", "element_subtype", "element_value", "profileid" } cleaned_info = {key: profile_entry[key] for key in required} result = None try: sql, args = data_adaptor.create_update( "profiles", cleaned_info, {"element_value": profile_entry["old_element_value"]}) res, data = data_adaptor.run_q(sql, args) if res != 1: result = None else: result = "Updated successfully" except pymysql.err.IntegrityError as ie: if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: raise DataException() return result
def create_profile_entry(cls, entry_info): required = { "userid", "element_type", "element_subtype", "element_value", "profileid" } entry_info = {key: entry_info[key] for key in required} result = None try: sql, args = data_adaptor.create_insert(table_name="profiles", row=entry_info) res, data = data_adaptor.run_q(sql, args) if res != 1: result = None else: result = "Profile Entry Created" except pymysql.err.IntegrityError as ie: if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: raise DataException() return result
def get_by_creds(cls, creds): email = creds['email'] pw = creds['pw'] sql = "select first_name, last_name, email, status, id from ebdb.users where email=%s and password=%s" res, data = data_adaptor.run_q(sql=sql, args=(email, pw), fetch=True) flag = "User not registered" result = None # status should be active as well # 1. if status = pending, throw appropriate error # 2. if status = active, works if data is not None and len(data) > 0: # sql = "select first_name, last_name, email, status, id from ebdb.users where email=%s and password=%s and status='ACTIVE'" # res2, data2 = data_adaptor.run_q(sql=sql, args=(email, pw), fetch=True) # if data2 is not None and len(data2) > 0: # result = data2[0] # else: # result = None # flag = "NOT_ACTIVATED" # else: # result = None # flag = "NOT_REGISTERED" if data[0]['status'] == "PENDING": flag = "Please use the link of your email to activate account" elif data[0]['status'] == "DELETED": flag = "User account deleted." elif data[0]['status'] == "SUSPENDED": flag = "User account suspended." elif data[0]['status'] == "ACTIVE": flag = "ACTIVE" result = data[0] return result, flag
def create_user(cls, user_info): result = None try: sql, args = data_adaptor.create_insert(table_name="users", row=user_info) res, data = data_adaptor.run_q(sql, args) if res != 1: result = None else: result = user_info['email'] except pymysql.err.IntegrityError as ie: print(ie) if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: log_msg = "DataObjectCreate_user: Exception = " + str(e) print(log_msg) raise DataException() return result
def update_user(cls, email, new_values): result = None # this makes sure we don't update a value marked as 'DELETED'. get_by_email() user_info = UsersRDB.get_by_email(email) if not user_info: return "No such user exists, homie." try: sql, args = data_adaptor.create_update(table_name="users", new_values=new_values, template={"email": email}) res, data = data_adaptor.run_q(sql, args) if res != 1: result = None else: result = user_info['id'] except pymysql.err.IntegrityError as ie: if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: raise DataException() return result
def update_user(cls, email, user_info): result = None user_info.pop("override", None) try: sql, args = data_adaptor.create_update(table_name="e6156.users", new_values=user_info, template={"email": email}) # sql, args = data_adaptor.create_insert(table_name="users", row=user_info) res, data = data_adaptor.run_q(sql, args) if res != 1: result = None else: result = user_info['id'] except pymysql.err.IntegrityError as ie: if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: raise DataException() return result
def create_user(cls, user_info): result = None try: sql, args = data_adaptor.create_insert(table_name="users", row=user_info) res, data = data_adaptor.run_q(sql, args) msg = {"customers_email": user_info['email']} notification.publish_it(msg) if res != 1: result = None else: result = user_info['id'] except pymysql.err.IntegrityError as ie: if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: raise DataException() return result
def registrations(): status = "PENDING" id = str(uuid4()) last_name = request.json.get("last_name") first_name = request.json.get("first_name") email = request.json.get("email") password = request.json.get("password") new_usr = { "last_name": last_name, "first_name": first_name, "id": id, "email": email, "status": status, "password": password } try: sql, args = data_adaptor.create_insert(table_name="users", row=new_usr) res, data = data_adaptor.run_q(sql, args) message = {"result": res, "data": data} response = Response(json.dumps(message), status=200, content_type="application/json") return response except pymysql.err.IntegrityError as ie: if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: raise DataException()
def create_profile(cls, profile_info, commit=False): result = None try: for el in profile_info['entries']: el['userid'] = profile_info['userid'] el['profileid'] = profile_info['profileid'] #res = cls.create_profile_element(el, commit=False, conn=conn, cur=cur) sql, args = data_adaptor.create_insert(table_name="profile", row=el) res, data = data_adaptor.run_q(sql, args) if res != 1: result = None else: result = profile_info except pymysql.err.IntegrityError as ie: if ie.args[0] == 1062: raise (DataException(DataException.duplicate_key)) else: raise DataException() except Exception as e: raise DataException() return result
def get_profile_entries(cls, queryParams): queryParams = json.loads(queryParams) if 'userid' in queryParams: sql = "select * from e6156.profiles where userid=%s" res, data = data_adaptor.run_q(sql=sql, args=(queryParams['userid']), fetch=True) if data is not None: entries = [] for entry in data: entries.append({ 'element_id': entry['element_id'], 'element_type': entry['element_type'], 'element_subtype': entry['element_subtype'], 'element_value': entry['element_value'] }) temp = data result = {} result['userid'] = temp[0]['userid'] result['profileid'] = temp[0]['profileid'] result['entries'] = entries else: result = None elif 'value' in queryParams: sql = "select * from e6156.profiles where element_value=%s" res, data = data_adaptor.run_q(sql=sql, args=(queryParams['value']), fetch=True) if data is not None: # Compute links for each returned user for x in data: x["links"] = [{ "rel": "profile", "href": "/api/profile?userid=" + x["userid"], "method": "GET" }, { "rel": "profile", "href": "/api/profile", "method": "POST" }] result = data else: result = None else: result = None return result
def retrieve_by_key(cls, key_fields, fields): t_name = cls.get_table_name() kcs = cls.get_primary_key_columns() tmp = dict(zip(kcs, key_fields)) sql, args = da.create_select(t_name, template=tmp, fields=fields) res, d = da.run_q(sql, args=args, fetch=True) return d
def get_first(cls): sql = "select * from e6156.profile_entries limit 1" res, data = data_adaptor.run_q(sql=sql, fetch=True) if data is not None and len(data) > 0: result = data[0] else: result = None return result
def delete_by_uid(cls, uid): try: sql = data_adaptor.create_delete(table_name="profile",template={"uid":uid}) res, data = data_adaptor.run_q(sql, args=uid) except Exception as e: raise DataException() return res
def get_by_email(cls, email): sql = "select * from e6156.users where email=%s" res, data = data_adaptor.run_q(sql=sql, args=(email), fetch=True) if data is not None and len(data) > 0: result = data[0] else: result = None return result
def get_by_customer_id(cls, customer_id): sql = "select * from e6156.profile_entries where customer_id=%s" res, data = data_adaptor.run_q(sql=sql, args=(customer_id), fetch=True) if data is not None and len(data) > 0: result = data else: result = None return result
def get_users(cls, params, fields): sql, args = data_adaptor.create_select(table_name="users", template=params, fields=fields) res, data = data_adaptor.run_q(sql, args) if data is not None and len(data) > 0: return data else: return None
def delete_by_email(cls, email): sql = "delete from e6156.users where email=%s" res, data = data_adaptor.run_q(sql=sql, args=email, fetch=True) if res == 1: result = "Successfully deleted" else: result = None return result
def delete_user(cls, email): sql = "UPDATE e6156.users SET status = 'DELETED' WHERE email=%s" res, data = data_adaptor.run_q(sql=sql, args=(email), fetch=True) if data is not None and len(data) > 0: result = data[0] else: result = None return result
def create_post(cls, content): try: sql, args = data_adaptor.create_insert(table_name="posts", row=content) res, data = data_adaptor.run_q(sql, args) except Exception as e: raise DataException() return res
def delete_user(cls, email): sql = "delete from e6156.users where email=%s" res, data = data_adaptor.run_q(sql=sql, args=(email), fetch=True) if res == 1: res = "Successful Deletion" else: res = None return res
def delete_user(cls, email): # try: # sql = "delete from ebdb.users where email=%s" # data_adaptor.run_q(sql=sql, args=(email), fetch=False) # return "User deleted successfully" # except Exception as e: # print(e) # return None try: template = {"email": email} data = {"status": "DELETED"} sql, args = data_adaptor.create_update("ebdb.users", data, template) data_adaptor.run_q(sql=sql, args=args, fetch=True) return "Resource updated successfully" except Exception as e: print(e) return None
def get_profile_by_customer_id(cls, uuid): sql = "select * from ebdb.profile where user_id=%s" res, data = data_adaptor.run_q(sql=sql, args=(uuid), fetch=True) if data is not None and len(data) > 0: result = data else: result = None return result
def delete_profile(cls, profileid): sql = "delete from baseball.profile where profileid=%s" res, data = data_adaptor.run_q(sql=sql, args=(profileid), fetch=True) if data is not None and len(data) > 0: result = data[0] else: result = None return result
def delete_profile(cls, profile_id): result = None sql, args = data_adaptor.create_select( table_name="profile_entries", template={"profile_entry_id": profile_id}) _, prev_data = data_adaptor.run_q(sql, args) if prev_data is not None and len(prev_data) > 0: sql, args = data_adaptor.delete( table_name="profile_entries", template={"profile_entry_id": profile_id}) result, _ = data_adaptor.run_q(sql, args) if result != 1: result = None else: return result return "Completed"
def get_profile_query(cls, param_id): # Only get the user not deleted sql = "select * from e6156.profile_entries where user_id=%s" res, data = data_adaptor.run_q(sql=sql, args=(param_id), fetch=True) if data is not None and len(data) > 0: result = data else: result = None return result
def delete_user(cls, email): sql = "delete from e6156.users where email=%s" res, data = data_adaptor.run_q(sql=sql, args=email, fetch=True) if res: res = "Successful delete" else: res = "Failed" return res