示例#1
0
def edit(id, scheduling):
    edited_scheduling = get_by_id(id)

    if scheduling is None:
        raise SchedulingException("Dados do agendamento inválidos")

    validate(scheduling)

    edited_scheduling.title = scheduling.title
    edited_scheduling.initial_date = scheduling.initial_date
    edited_scheduling.final_date = scheduling.final_date
    edited_scheduling.meeting_room_id = scheduling.meeting_room_id
    edited_scheduling.user_id = scheduling.user_id

    filters = {
        'meetingroomid': edited_scheduling.meeting_room_id,
        'initial_date': edited_scheduling.initial_date,
        'final_date': edited_scheduling.final_date
    }

    existing_schedules = scheduling_rep.get_all(filters)

    if len([schedule for schedule in existing_schedules if schedule.id != id]):
        raise SchedulingException(
            "Já existe agendamento para o horário desejado.")

    db.session.commit()
示例#2
0
def validate(meeting_room):
    if not meeting_room.name or len(meeting_room.name) > 100:
        raise SchedulingException(
            'Nome da sala de reunião inválido. Não deve ser vazio, e deve conter no máximo 100 caracteres.'
        )

    if meeting_room.description and len(meeting_room.description) > 255:
        raise SchedulingException(
            'Descrição da sala de reunião deve conter no máximo 255 caracteres.'
        )
示例#3
0
def validate(user):
    if not user.username or len(user.username) > 40:
        raise SchedulingException(
            'Usuário inválido. Não deve ser vazio e deve conter no máximo 40 caracteres.'
        )

    if not user.name or len(user.name) > 100:
        raise SchedulingException(
            'Nome do usuário inválido. Não deve ser vazio e deve conter no máximo 100 caracteres.'
        )
示例#4
0
def validate(scheduling):
    if not scheduling.title or len(scheduling.title) > 80:
        raise SchedulingException(
            'Título do agendamento inválido. Não deve ser vazio, e deve conter no máximo 80 caracteres.'
        )

    if not scheduling.initial_date:
        raise SchedulingException(
            'É obrigatório informar a data inicial do agendamento.')

    if not scheduling.final_date:
        raise SchedulingException(
            'É obrigatório informar a data final do agendamento.')

    if not isinstance(scheduling.initial_date, datetime.datetime):
        raise SchedulingException('Data inicial do agendamento inválida')

    if not isinstance(scheduling.final_date, datetime.datetime):
        raise SchedulingException('Data final do agendamento inválida')

    if scheduling.initial_date > scheduling.final_date:
        raise SchedulingException(
            'Data inicial do agendamento não pode ser maior que a data final do agendamento'
        )

    meeting_room = meeting_room_repository.get_by_id(
        scheduling.meeting_room_id)
    if (meeting_room is None):
        raise SchedulingException('Sala de reunião não encontrada')

    user = user_repository.get_by_id(scheduling.user_id)
    if (user is None):
        raise SchedulingException('Usuário não encontrado')
示例#5
0
def get_by_id(id):
    user = user_repository.get_by_id(id)

    if user is None:
        raise SchedulingException('Usuário não encontrado.', 404)

    return user
示例#6
0
def edit(id, user):
    edited_user = get_by_id(id)

    if user is None:
        raise SchedulingException("Dados do usuário inválidos")

    existing_user = user_repository.get_by_username(user.username)
    if existing_user is not None and existing_user.id != id:
        raise SchedulingException("Usuário já existente")

    validate(user)

    edited_user.username = user.username
    edited_user.name = user.name

    db.session.commit()
示例#7
0
def edit(id, meeting_room):
    edited_meeting_room = get_by_id(id)

    if meeting_room is None:
        raise SchedulingException("Dados da sala de reunião inválidos")

    existing_meeting_room = meeting_room_rep.get_by_name(meeting_room.name)
    if existing_meeting_room is not None and existing_meeting_room.id != id:
        raise SchedulingException(
            'Já existe uma sala de reunião com esse nome.')

    validate(meeting_room)
    edited_meeting_room.name = meeting_room.name
    edited_meeting_room.description = meeting_room.description

    db.session.commit()
示例#8
0
def delete(id):
    if can_be_deleted(id):
        user = get_by_id(id)
        db.session.delete(user)
        db.session.commit()
    else:
        raise SchedulingException(
            'Usuário não pode ser deletado pois possuí agendamentos')
示例#9
0
def delete(id):
    if can_be_deleted(id):
        meeting_room = get_by_id(id)
        db.session.delete(meeting_room)
        db.session.commit()
    else:
        raise SchedulingException(
            'Sala de reunião não pode ser deletada pois possuí agendamentos.')
示例#10
0
def create(username, name):
    user = User(username, name)
    validate(user)

    existing_user = user_repository.get_by_username(user.username)
    if existing_user is not None:
        raise SchedulingException("Usuário já existente")

    db.session.add(user)
    db.session.commit()
示例#11
0
def create(name, description):
    meeting_room = MeetingRoom(name, description)
    validate(meeting_room)

    existing_meeting_room = meeting_room_rep.get_by_name(meeting_room.name)
    if existing_meeting_room is not None:
        raise SchedulingException(
            'Já existe uma sala de reunião com esse nome.')

    db.session.add(meeting_room)
    db.session.commit()
示例#12
0
def create(title, initial_date, final_date, id_meeting_room, id_user):
    scheduling = Scheduling(title, initial_date, final_date, id_meeting_room,
                            id_user)
    validate(scheduling)

    filters = {
        'meetingroomid': scheduling.meeting_room_id,
        'initial_date': scheduling.initial_date,
        'final_date': scheduling.final_date
    }
    existing_schedules = scheduling_rep.get_all(filters)

    if len(existing_schedules) > 0:
        raise SchedulingException(
            "Já existe agendamento para o horário desejado.")

    db.session.add(scheduling)
    db.session.commit()
示例#13
0
def get_by_id(id):
    scheduling = scheduling_rep.get_by_id(id)
    if not scheduling:
        raise SchedulingException('Agendamento não encontrado.', 404)

    return scheduling
示例#14
0
def get_by_id(id):
    meeting_room = meeting_room_rep.get_by_id(id)
    if not meeting_room:
        raise SchedulingException('Sala de reunião não encontrada.', 404)

    return meeting_room