def create_alarm(self, alarm): """Create an alarm. :param alarm: The alarm to create. """ session = sqlalchemy_session.get_session() with session.begin(): session.merge(User(id=alarm.user_id)) session.merge(Project(id=alarm.project_id)) alarm_row = Alarm(id=alarm.alarm_id) alarm_row.update(alarm.as_dict()) session.add(alarm_row) session.flush() return self._row_to_alarm_model(alarm_row)
def _alarm_model_to_row(alarm, row=None): if row is None: row = Alarm(id=str(uuid.uuid1())) row.update(alarm.as_dict()) return row