/** * Exercise phase object * $Id$ * $HeadURL$ * $Author$ * created by Philipp Dassow, SLEA, 2017-04-05 */ #include "object_exercise_phase.h" #include "convert_db_to_dds.h" #include "dds_handler.h" #include "logger.h" namespace ExerciseManagement { ObjectExercisePhase::ObjectExercisePhase(const std::shared_ptr &ddsHandler, const std::shared_ptr &db) : m_ddsHandler(ddsHandler) , m_db(db) , m_logger(getLogger("ObjectExercisePhase")) {} ObjectExercisePhase::~ObjectExercisePhase () {} Core::FunctionReplyObject ObjectExercisePhase::createObject(const Database::ExmExercisePhase &data) { m_data = data; if (m_data.id <= 0) { if (!m_db->insert(m_data)) { return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting ExmExercisePhase-data into database")); } // Id is serial -> will be generated by db => inside m_data after db-insert DEBUG_LOG(m_logger) << "New exercisePhaseId: " << m_data.id; } INFO_LOG(m_logger) << "ExercisePhase created sucessfully."; // Publish Data via DTS onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectExercisePhase::updateObject(const Database::ExmExercisePhase &data) { if (!isValid()) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed Exercise Phase object")); m_data = data; INFO_LOG(m_logger) << "Trying to updateObject ExercisePhaseData with id = " << data.id; if (!m_db->update(m_data)) { ERROR_LOG(m_logger) << "Failed to update ExercisePhaseData with id = " << data.id; return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Error updating ExmExercisePhase-data with id %1 in database")).arg(data.id); } INFO_LOG(m_logger) << "ExercisePhaseData changed sucessfully."; // Publish Data via DTS onPublishData(); return Core::FunctionReplyObject(m_data.id); } Core::FunctionReplyObject ObjectExercisePhase::removeObject() { if (!m_db->removeExmExercisePhase(m_data.id)) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "ExercisePhase with id %1 can not be removed from DB")).arg(m_data.id); if (!m_ddsHandler->dts()->removeExercisePhaseByKey(m_data.id)) return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "ExercisePhase %1 can not be removed from DDS")).arg(m_data.id); return Core::FunctionReplyObject(m_data.id); } bool ObjectExercisePhase::isValid() const { return m_data.id > 0; } void ObjectExercisePhase::onPublishData() { INFO_LOG(m_logger) << "Publish ExmExercisePhase-data to dds (" << m_data.id << ", " << m_data.name << ") ..."; if (!m_ddsHandler->dts()->publish(convert(m_data))) ERROR_LOG(m_logger) << "Error publishing ExmExercisePhase-data to dds"; } } // namespace ExerciseManagement