остальные API для извлечения заметок

Вот еще одно решение с использованием JavaScript. Специальности моего решения:

  • Обрабатывает нулевые значения как бесконечность
  • Предполагает, что нижняя граница является инклюзивной, а верхняя граница исключена.
  • Поставляется с куча тестов

Тесты основаны на целых числах, но поскольку объекты даты в JavaScript сопоставимы, вы можете просто выбросить два объекта даты.

/**
 * Compares to comparable objects to find out whether they overlap.
 * It is assumed that the interval is in the format [from,to) (read: from is inclusive, to is exclusive).
 * A null value is interpreted as infinity
 */
function intervalsOverlap(from1, to1, from2, to2) {
    return (to2 === null || from1 < to2) && (to1 === null || to1 > from2);
}

Тесты:

describe('', function() {
    function generateTest(firstRange, secondRange, expected) {
        it(JSON.stringify(firstRange) + ' and ' + JSON.stringify(secondRange), function() {
            expect(intervalsOverlap(firstRange[0], firstRange[1], secondRange[0], secondRange[1])).toBe(expected);
        });
    }

    describe('no overlap (touching ends)', function() {
        generateTest([10,20], [20,30], false);
        generateTest([20,30], [10,20], false);

        generateTest([10,20], [20,null], false);
        generateTest([20,null], [10,20], false);

        generateTest([null,20], [20,30], false);
        generateTest([20,30], [null,20], false);
    });

    describe('do overlap (one end overlaps)', function() {
        generateTest([10,20], [19,30], true);
        generateTest([19,30], [10,20], true);

        generateTest([10,20], [null,30], true);
        generateTest([10,20], [19,null], true);
        generateTest([null,30], [10,20], true);
        generateTest([19,null], [10,20], true);
    });

    describe('do overlap (one range included in other range)', function() {
        generateTest([10,40], [20,30], true);
        generateTest([20,30], [10,40], true);

        generateTest([10,40], [null,null], true);
        generateTest([null,null], [10,40], true);
    });

    describe('do overlap (both ranges equal)', function() {
        generateTest([10,20], [10,20], true);

        generateTest([null,20], [null,20], true);
        generateTest([10,null], [10,null], true);
        generateTest([null,null], [null,null], true);
    });
});

Результат при запуске с кармой и жасмином & amp; PhantomJS:

PhantomJS 1.9.8 (Linux): выполнено 20 из 20 УСПЕХА (0.003 secs / 0.004 secs)

-1
задан Kartik Thakurela 18 January 2019 в 05:36
поделиться

1 ответ

API REST не будет работать для того, что вы пытаетесь, потому что StickyNotes имеет ItemClass of IPM.StickyNote, а REST API для сообщений будет возвращать только те элементы, которые имеют класс или подкласс IPM.Note. Вам нужно будет использовать EWS (SOAP), попробуйте https://pypi.org/project/exchangelib/

0
ответ дан Glen Scales 18 January 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: