def insert_user(user, db_config): try: # attempt to insert user row insert_query = "insert into %s (userid, last_name, first_name) " \ "values('%s', '%s' ,'%s')" % (db_config.user_table, user['userid'], user['last_name'], user['first_name']) db_utils.execute_query(insert_query, db_config) # get user id user_id = get_user_id_by_userid(user['userid'], db_config) # build join table for group_name in user['groups']: group_id = get_group_id_by_name(group_name, db_config) if group_id is None: raise InsertException('Error creating user, one or more groups do not exist in database') insert_query = "insert into %s (user_id, group_id) " \ "values('%s', '%s')" % (db_config.user_group_table, user_id, group_id) db_utils.execute_query(insert_query, db_config) except Exception as exception: # check for duplicate correlation id constraint violation if 'duplicate' in str(exception): raise DuplicateException('Error creating user, duplicate found: %s' % exception) else: raise InsertException('Error creating user: %s' % exception)
def insert_group(group, db_config): try: # attempt to insert row insert_query = "insert into %s (name) " \ "values('%s')" % (db_config.group_table, group['name']) db_utils.execute_query(insert_query, db_config) except Exception as exception: # check for duplicate correlation id constraint violation if 'duplicate' in str(exception): raise DuplicateException('Error creating group, duplicate found: %s' % exception) else: raise InsertException('Error creating group: %s' % exception)
def update_group(userids, group_name, db_config): try: delete_group_by_name(group_name, db_config) group = create_group_object({"name": "%s" % group_name}) insert_group(group, db_config) group_id = get_group_id_by_name(group_name, db_config) for userid in userids: user_id = get_user_id_by_userid(userid, db_config) insert_query = "insert into %s (user_id, group_id) " \ "values('%s', '%s')" % (db_config.user_group_table, user_id, group_id) db_utils.execute_query(insert_query, db_config) except Exception as exception: raise UpdateException('Error updating group: %s' % exception)
def get_non_refactored_fields(dataset=""): sql = ("select " + " classAnonymousClassesQty, " + " classAssignmentsQty, " + " classCbo, " + " classComparisonsQty, " + " classLambdasQty, " + " classLcom, " + " classLoc, " + " classLoopQty, " + " classMathOperationsQty, " + " classMaxNestedBlocks, " + " classNosi, " + " classNumberOfAbstractMethods, " + " classNumberOfDefaultFields, " + " classNumberOfDefaultMethods, " + " classNumberOfFields, " + " classNumberOfFinalFields, " + " classNumberOfFinalMethods, " + " classNumberOfMethods, " + " classNumberOfPrivateFields, " + " classNumberOfPrivateMethods, " + " classNumberOfProtectedFields, " + " classNumberOfProtectedMethods, " + " classNumberOfPublicFields, " + " classNumberOfPublicMethods, " + " classNumberOfStaticFields, " + " classNumberOfStaticMethods, " + " classNumberOfSynchronizedFields, " + " classNumberOfSynchronizedMethods, " + " classNumbersQty, " + " classParenthesizedExpsQty, " + " classReturnQty, " + " classRfc, " + " classStringLiteralsQty, " + " classSubClassesQty, " + " classTryCatchQty, " + " classUniqueWordsQty, " + " classVariablesQty, " + " classWmc, " + " fieldAppearances, " + " authorOwnership, " + " bugFixCount, " + " linesAdded, " + " linesDeleted, " + " qtyMajorAuthors, " + " qtyMinorAuthors, " + " qtyOfAuthors, " + " qtyOfCommits, " + " refactoringsInvolved " + " " + "from no " + "where type = 4") if not dataset == "": sql = sql + " and project_id in (select id from project where datasetName = '" + dataset + "')" sql = sql + " order by id" df = execute_query(sql) return df
def get_field_level_refactorings_count(dataset=""): if dataset == "": sql = "SELECT refactoring, count(*) total from yes where refactoringType = 4 group by refactoring order by count(*) desc" else: sql = "SELECT refactoring, count(*) total from yes where refactoringType = 4 and project_id in (select id from project where datasetName = '" + dataset + "') group by refactoring order by count(*) desc" df = execute_query(sql) return df
def get_refactoring_types(dataset=""): if dataset == "": sql = "SELECT refactoring, count(*) total from yes group by refactoring order by count(*) desc" else: sql = "SELECT refactoring, count(*) total from yes where project_id in (select id from project where datasetName = '" + dataset + "') group by refactoring order by count(*) desc" df = execute_query(sql) return df
def delete_group_by_name(name, db_config): delete_query = "delete from %s where name = '%s'" % (db_config.group_table, name) db_utils.execute_query(delete_query, db_config)
def delete_user(userid, db_config): delete_query = "delete from %s where userid = '%s'" % (db_config.user_table, userid) db_utils.execute_query(delete_query, db_config)