def add_object(name, stereotype, object_type, package_id, parent_id, ea_quid=""): """ Создание объекта на основе полученных данных :param name: имя объекта :param stereotype: стереотип объекта :param object_type: тип объекта :param package_id: id добавленого пакета :param parent_id: id родителя добавленого пакета :param ea_quid: уникальный ключ :return: экземпляр на основе полученных данных """ logger = logging.getLogger("Object") with connection.cursor() as cursor: logger.info("Insert Object...") #добавление объекта if (ea_quid == '' or ea_quid == None): ea_quid = '{' + str( uuid.uuid4()) + '}' #генерация уникального ключа created_date = str(datetime.datetime.today()) sql = "INSERT INTO `t_object` (`Object_Type`, `Name`, `ea_guid`, `Stereotype`, `Package_ID`, `PDATA1`, `CreatedDate`, `ModifiedDate`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)" cursor.execute(sql, (object_type, name, ea_quid, stereotype, parent_id, package_id, created_date, created_date)) result = get_by_ea_guid(ea_quid) connection.commit() return result
def delete_by_ea_guid(ea_guid): """ Удаление по ключу :param ea_guid: уникальный :return: """ logger = logging.getLogger("Diagram") logger.info("Delete diagram by ea_guid") with connection.cursor() as cursor: sql = "DELETE FROM `t_diagram` WHERE `ea_guid`=?" result = get_by_ea_guid( ea_guid) # поиск по уникальному ключу добавленного элемента cursor.execute(sql, (ea_guid)) connection.commit() return result
def delete_by_ea_guid(ea_guid): """ Удаление экземпляра на основе ключа :param ea_guid: уникальный ключ :return: удаленного экземпляра """ logger = logging.getLogger("Connector") logger.info("Delete connector by ea_guid") with connection.cursor() as cursor: sql = "DELETE FROM `t_connector` WHERE `ea_guid`=?" result = get_by_ea_quid( ea_guid) # поиск по уникальному ключу добавленного элемента cursor.execute(sql, (ea_guid)) connection.commit() return result
def update_attribute(name, id): """ Обновление атрибута :param name: имя атрибута :param object_id: id объекта :return: обновленого атрибута на основе полученных данных """ logger = logging.getLogger("Attribute") logger.info("Update attribute...") with connection.cursor() as cursor: sql = "UPDATE `t_attribute` SET `Name`=? WHERE `ID`=?" result = cursor.execute(sql, (name, id)) result = get_by_id(id) connection.commit() return result
def delete_by_ea_guid(ea_guid): """ Удаление по уникальному ключу :param ea_guid: ключ :return: возращение удаленного объекта """ logger = logging.getLogger("Package") logger.info("Delete package by ea_guid") with connection.cursor() as cursor: sql = "DELETE FROM `t_package` WHERE `ea_guid`=?" result = get_by_ea_guid( ea_guid) # поиск по уникальному ключу добавленного элемента cursor.execute(sql, (ea_guid)) connection.commit() object.delete_by_ea_guid(ea_guid) return result
def add_attribute(name, object_id): """ Cоздание аттрибута на основе полученых данных :param name: имя аттрибута :param object_id: id объекта к которому пишется аттрибут :return: экземляр на основе полученных данных """ logger = logging.getLogger("Attribute") with connection.cursor() as cursor: ea_quid = '{' + str(uuid.uuid4()) + '}' #генерация уникального ключа logger.info("Insert attribute...") sql = "INSERT INTO `t_attribute` (`Object_ID`, `ea_guid`, `Name`) VALUES (?, ?, ?)" #добавление в таблицу cursor.execute(sql, (object_id, ea_quid, name)) connection.commit() result = get_by_ea_guid(ea_quid) return result
def update_by_ea_guid(name, stereotype, diagram_type, ea_guid): """ Обновление диаграммы на основе полученнных данных :param name: имя :param stereotype: стереотип :param diagram_type: тип диаграммы :param ea_guid: уникальный ключ :return: обновленного элемента на основе полученных данных """ logger = logging.getLogger("Diagram") logger.info("Update diagram by ea_guid") with connection.cursor() as cursor: sql = "UPDATE `t_diagram` SET `Name`=?, `Stereotype`=?, `Diagram_Type`=? WHERE ea_guid=?" cursor.execute(sql, (name, stereotype, diagram_type, ea_guid)) connection.commit() result = get_by_ea_guid(ea_guid) return result
def update_object(name, stereotype, object_id): """ Изменение данных объекта :param name: имя объекта :param stereotype: стереотип объекта :param object_id: id объекта :return: экземпляр измененного объекта """ logger = logging.getLogger("Object") with connection.cursor() as cursor: modified_date = str(datetime.datetime.today()) logger.info("Update object...") sql = "UPDATE `t_object` SET `Name`=?, `Stereotype`=?, `ModifiedDate`=? WHERE `Object_ID`=?" #поиск объекта по id и обновление нужных полей result = cursor.execute(sql, (name, stereotype, modified_date, object_id)) result = get_by_id(object_id) connection.commit() return result
def add_connector(name, connector_type, start_objectid, end_objectid): """ Создание конектора на основе полученных данных :param name: имя конектора :param connector_type: тип коннектора :param start_objectid: первый id объекта между которым идет связь :param end_objectid: второй id объекта между которым идет связь :return: экземляр на основе полученных данных """ logger = logging.getLogger("Connector") with connection.cursor() as cursor: ea_quid = '{' + str(uuid.uuid4()) + '}' #генерация уникального ключа logger.info("Add Connector...") sql = "INSERT INTO `t_connector` (`Name`, `ea_guid`, `Connector_Type`, `Start_Object_ID`, `End_Object_ID`) VALUES (?, ?, ?, ?, ?)" #добавление элемента cursor.execute( sql, (name, ea_quid, connector_type, start_objectid, end_objectid)) connection.commit() result = get_by_ea_quid(ea_quid) return result
def add_diagram(name, package_id, stereotype, diagram_type): """ Создание диаграммы на основе полученных данных :param name: имя диаграммы :param package_id: id пакета внутри которого находится диаграмма :param stereotype: стереотип :param diagram_type: тип диаграммы :return: экземпляр на основе полученных данных """ logger = logging.getLogger("Diagram") with connection.cursor() as cursor: ea_quid = '{' + str(uuid.uuid4()) + '}' #генерация уникального ключа created_date = str(datetime.datetime.today()) logger.info("Add Diagram...") sql = "INSERT INTO `t_diagram` (`Package_ID`, `Name`, `ea_guid`, `Stereotype`, `Diagram_Type`,`CreatedDate`) VALUES (?, ?, ?, ?, ?, ?)" cursor.execute(sql, (package_id, name, ea_quid, stereotype, diagram_type, created_date)) #добавление элемента connection.commit() result = get_by_ea_guid(ea_quid) return result
def update_by_ea_guid(ea_quid, name, connector_type, start_objectid, end_objectid): """ Обновление по ключу :param ea_quid: уникальный ключ :param name: имя :param connector_type: тип конектора :param start_objectid: первый id :param end_objectid: второй id :return: измененного экземпляра на основе полученных данных """ logger = logging.getLogger("Connector") logger.info("Update connector by ea_guid") with connection.cursor() as cursor: sql = "UPDATE `t_connector` SET `Name`=?, `Connector_Type`=?, `Start_Object_ID`=?, `End_Object_ID`=? WHERE ea_guid=?" cursor.execute( sql, (name, connector_type, start_objectid, end_objectid, ea_quid)) connection.commit() result = get_by_ea_quid(ea_quid) return result
def update_package(name, notes, stereotype, package_id): """ Измененин данных пакета на основе полученных данных :param name: имя пакета :param notes: описание пакета :param stereotype: стереоптип :param package_id: id пакета :return: экземпляр пакета на основе изменненых данных """ logger = logging.getLogger("Package") with connection.cursor() as cursor: modified_data = str(datetime.datetime.today()) logger.info("Update package...") sql = "UPDATE `t_package` SET `Name`=?, `Notes`=? WHERE `Package_ID`=?" cursor.execute(sql, (name, notes, package_id)) connection.commit() sql = "SELECT `Object_ID` FROM `t_object` WHERE `PDATA1`=?" result = cursor.execute(sql, (package_id)).fetchall() object_id = result[0][0] object.update_object(name, stereotype, object_id) return result