예제 #1
0
def dissociate_extension(lineid):
    try:
        line_extension = line_extension_services.get_by_line_id(lineid)
    except LineExtensionNotExistsError:
        raise AssociationNotExistsError("Line with id=%d does not have an extension" % lineid)
    line_extension_services.dissociate(line_extension)
    return make_response('', 204)
예제 #2
0
def dissociate_extension(line_id, extension_id):
    model = formatter.model_from_ids(line_id, extension_id)
    try:
        line_extension_services.dissociate(model)
    except NonexistentParametersError as e:
        raise AssociationNotExistsError(str(e))
    return ''
예제 #3
0
def dissociate_extension(lineid):
    try:
        line_extension = line_extension_services.get_by_line_id(lineid)
    except LineExtensionNotExistsError:
        raise AssociationNotExistsError(
            "Line with id=%d does not have an extension" % lineid)
    line_extension_services.dissociate(line_extension)
    return make_response('', 204)
예제 #4
0
    def test_given_internal_context_then_dissociates_line_extension(self,
                                                                    dissociate_line_extension,
                                                                    validate_dissociation,
                                                                    notifier_dissociated,
                                                                    get_by_extension_id):
        line_extension = Mock(LineExtension, line_id=1, extension_id=2)
        get_by_extension_id.return_value = Mock(Context, type='internal')

        line_extension_service.dissociate(line_extension)

        get_by_extension_id.assert_called_once_with(line_extension.extension_id)
        validate_dissociation.assert_called_once_with(line_extension)
        dissociate_line_extension.assert_called_once_with(line_extension)
        notifier_dissociated.assert_called_once_with(line_extension)
예제 #5
0
    def test_dissociate(self, manager, notifier_dissociated):
        line_extension = Mock(LineExtension)

        result = line_extension_service.dissociate(line_extension)
        assert_that(result, equal_to(line_extension))

        manager.dissociate.assert_called_once_with(line_extension)
        notifier_dissociated.assert_called_once_with(line_extension)
예제 #6
0
    def test_given_incall_context_then_dissociates_incall(self,
                                                          incall_find_by_extension_id,
                                                          incall_delete,
                                                          dissociate_extension,
                                                          validate_dissociation,
                                                          notifier_dissociated,
                                                          get_by_extension_id):
        line_extension = Mock(LineExtension, line_id=1, extension_id=2)
        get_by_extension_id.return_value = Mock(Context, type='incall')
        incall = incall_find_by_extension_id.return_value = Mock(Incall)

        line_extension_service.dissociate(line_extension)

        get_by_extension_id.assert_called_once_with(line_extension.extension_id)
        validate_dissociation.assert_called_once_with(line_extension)
        notifier_dissociated.assert_called_once_with(line_extension)
        incall_find_by_extension_id.assert_called_once_with(line_extension.extension_id)
        incall_delete.assert_called_once_with(incall)
        dissociate_extension.assert_called_once_with(line_extension.extension_id)
예제 #7
0
def _delete_line_associations(channel, line_id):
    from xivo_dao.data_handler.line import services as line_services
    from xivo_dao.data_handler.line_extension import services as line_extension_services
    from xivo_dao.data_handler.user_line import services as user_line_services

    line = line_services.get(line_id)
    line.device_id = None
    line.device_slot = 1
    line_services.edit(line)

    line_extension = line_extension_services.find_by_line_id(line_id)
    if line_extension:
        line_extension_services.dissociate(line_extension)

    user_lines = user_line_services.find_all_by_line_id(line_id)
    secondary_associations = [ul for ul in user_lines if not ul.main_user]
    main_associations = [ul for ul in user_lines if ul.main_user]

    for user_line in secondary_associations + main_associations:
        user_line_services.dissociate(user_line)
예제 #8
0
def _delete_line_associations(channel, line_id):
    from xivo_dao.data_handler.line import services as line_services
    from xivo_dao.data_handler.line_extension import services as line_extension_services
    from xivo_dao.data_handler.user_line import services as user_line_services

    line = line_services.get(line_id)
    line.device_id = None
    line.device_slot = 1
    line_services.edit(line)

    line_extension = line_extension_services.find_by_line_id(line_id)
    if line_extension:
        line_extension_services.dissociate(line_extension)

    user_lines = user_line_services.find_all_by_line_id(line_id)
    secondary_associations = [ul for ul in user_lines if not ul.main_user]
    main_associations = [ul for ul in user_lines if ul.main_user]

    for user_line in secondary_associations + main_associations:
        user_line_services.dissociate(user_line)
예제 #9
0
def dissociate_extension(line_id, extension_id):
    url.check_line_exists(line_id)
    url.check_extension_exists(extension_id)
    model = formatter.model_from_ids(line_id, extension_id)
    line_extension_services.dissociate(model)
    return ''
예제 #10
0
def dissociate_extension(lineid):
    url.check_line_exists(lineid)
    line_extension = line_extension_services.get_by_line_id(lineid)
    line_extension_services.dissociate(line_extension)
    return make_response('', 204)