Beispiel #1
0
    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
Beispiel #5
0
    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
Beispiel #6
0
    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
Beispiel #8
0
    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
Beispiel #9
0
    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
Beispiel #10
0
    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
Beispiel #11
0
    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
Beispiel #12
0
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()
Beispiel #13
0
    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
Beispiel #14
0
    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
Beispiel #15
0
 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
Beispiel #16
0
 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
Beispiel #17
0
    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
Beispiel #18
0
    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
Beispiel #19
0
    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
Beispiel #20
0
 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
Beispiel #22
0
    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
Beispiel #24
0
    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
Beispiel #27
0
    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
Beispiel #28
0
    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"
Beispiel #29
0
    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
Beispiel #30
0
    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