Beispiel #1
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 #2
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
Beispiel #3
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
Beispiel #4
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 #5
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 #6
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 #7
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 #8
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 #9
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 #10
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
 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
Beispiel #12
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
    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 #14
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 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 get_profile_by_id(cls, pid):
     sql, args = data_adaptor.create_select(
         table_name="profile",
         template={"profile_id": pid},
         fields=[
             "user_id", "profile_id", "element_type AS type",
             "element_subtype AS subtype", "element_value AS value"
         ])
     res, data = data_adaptor.run_q(sql, args=args)
     return data
 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 get_user_by_email(cls, email):
     sql, args = data_adaptor.create_select(table_name="users",
                                            template={"email": email},
                                            fields=["*"])
     res, data = data_adaptor.run_q(sql=sql, args=args, fetch=True)
     if data is not None and len(data) > 0:
         result = data[0]
     else:
         result = None
     return result
    def get_profile_by_params_and_fields(cls, params=None, fields=None):

        sql, args = data_adaptor.create_select("ebdb.profile", params, fields)
        res, data = data_adaptor.run_q(sql=sql, args=args, fetch=True)
        if data is not None and len(data) > 0:
            result = data
        else:
            result = None

        return result
Beispiel #20
0
    def update_profile(cls, param_profile, update_template, data):
        result = None
        conn = None
        cursor = None

        try:
            conn = data_adaptor._get_default_connection()
            cursor = conn.cursor()

            # a wrapper function helps to pass params
            def run_q(sql_, args_):
                return data_adaptor.run_q(sql_,
                                          args_,
                                          cur=cursor,
                                          conn=conn,
                                          commit=False)

            sql, args = data_adaptor.create_select(
                table_name="profile_entries", template=update_template)

            _, prev_data = run_q(sql, args)

            if prev_data is not None and len(prev_data) > 0:

                sql, args = data_adaptor.create_update(
                    table_name="profile_entries",
                    new_values=data,
                    template=update_template)
                res, _ = run_q(sql, args)
                if res != 1:
                    raise Exception('cannot update data!')
                else:
                    # get new Etag
                    new_data = prev_data[0]
                    for k, v in data.items():
                        new_data[k] = v
                    result = new_data['profile_entry_id']

                conn.commit()
            else:
                raise Exception('cannot retrieve data')

        except Exception as e:
            # rollback
            conn.rollback()
            raise e
        finally:
            # closing database connection.
            if cursor:
                cursor.close()
            if conn:
                conn.close()
            return result
Beispiel #21
0
    def update_user(cls, user_info, email):

        sql, arg = data_adaptor.create_update(table_name="users",
                                              new_values=user_info,
                                              template={'email': email})
        res, data = data_adaptor.run_q(sql=sql, args=arg, fetch=True)
        if res:
            res = "Successful update"
        else:
            res = "Failed"

        return res
Beispiel #22
0
    def get_user_profile(cls, params, fields):

        sql, args = data_adaptor.create_select(table_name="profile_entries",
                                               template=params,
                                               fields=fields)
        res, data = data_adaptor.run_q(sql, args)

        if data is not None and len(data) > 0:
            result = data
        else:
            result = None

        return result
Beispiel #23
0
    def get_user(cls, user_info):
        try:
            sql, args = data_adaptor.create_select(table_name="users",template=user_info)
            res, data = data_adaptor.run_q(sql, args)
        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 res
Beispiel #24
0
    def get_by_email(cls, email, fields):
        try:
            sql, args = data_adaptor.create_select(table_name="users", template={"email":email}, fields=fields)
            res, data = data_adaptor.run_q(sql, args)
        except Exception as e:
            raise DataException()

        if data is not None and len(data) > 0:
            result = data[0]
        else:
            result = None

        return result
    def delete_user(cls, user_info):
        if not user_info or not user_info["email"]:
            raise ValueError("Error: User must be deleted by a given email.")

        try:
            sql, args = data_adaptor.create_delete(table_name="users",
                                                   template=user_info)
            res, data = data_adaptor.run_q(sql, args)
            result = res
        except Exception as exp:
            raise exp

        return result
Beispiel #26
0
    def query_by_parameters(cls, params, fields):
        try:
            sql, args = data_adaptor.create_select(table_name="users", template=params, fields=fields)
            res, data = data_adaptor.run_q(sql, args)
        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 data
Beispiel #27
0
    def delete_user(cls,user_info):
        try:
            sql, args = data_adaptor.create_update(table_name="users",new_values={"status":"deleted"},template=user_info)
            res, data = data_adaptor.run_q(sql, args)
        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 res
Beispiel #28
0
    def get_by_query(cls, temp, cols):

        query = data_adaptor.create_select('baseball.users',
                                           template=temp,
                                           fields=cols)
        res, data = data_adaptor.run_q(sql=query[0],
                                       args=(query[1]),
                                       fetch=True)
        if data is not None and len(data) > 0:
            result = data[0]
        else:
            result = None

        return result
    def update_user(cls, user_info, template):
        try:
            sql, args = data_adaptor.create_update(table_name="users",
                                                   new_values=user_info,
                                                   template=template)
            res, data = data_adaptor.run_q(sql, args)
            if res != 1:
                result = None
            else:
                result = res
        except Exception as exp:
            raise DataException()

        return result
Beispiel #30
0
    def update_by_email(cls, new_values, email):

        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)
        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 res