Фильтр запросов на сервере отдыха композитора - PullRequest
0 голосов
/ 08 июня 2018

У меня проблемы с запросами на сервере остальных композиторов.

Я создаю фильтр следующим образом:

{
    "where": {
        "and": [
        {
            "origin": "web"
        },
        {
            "affiliate": "resource:org.acme.affiliates.Affiliate#2"
        },
        {
            "createdAt": {
            "gte": "2018-01-01"
            }
        },
        {
            "createdAt": {
            "lte": "2018-06-07"
            }
        }
        ]
    }
}

запрос:

curl -X GET --header 'Accept: application/json' 'http://localhost:3000/api/User?filter=%7B%22where%22%3A%7B%22and%22%3A%5B%7B%22origin%22%3A%22web%22%7D%2C%7B%22affiliate%22%3A%22resource%3Aorg.acme.affiliates.Affiliate%232%22%7D%2C%7B%22createdAt%22%3A%7B%22gte%22%3A%222018-01-01%22%2C%22lte%22%3A%222018-06-07%22%7D%7D%5D%7D%7D'

Ответ:

[
    {
        "$class": "org.acme.affiliates.User",
        "affiliate": "resource:org.acme.affiliates.Affiliate#2",
        "userId": "14",
        "email": "diego@duncan.com",
        "firstName": "diego",
        "lastName": "duncan",
        "createdAt": "2018-04-20T20:48:08.151Z",
        "origin": "web"
    },
    {
        "$class": "org.acme.affiliates.User",
        "affiliate": "resource:org.acme.affiliates.Affiliate#1",
        "userId": "15",
        "email": "diego@algo.com",
        "firstName": "diego",
        "lastName": "algo",
        "createdAt": "2018-04-20T20:53:40.720Z",
        "origin": "web"
    }
]

Как видите, фильтры не работают, потому что появляется Партнер №1.Я тестировал без созданных фильтров и работал отлично, потом я тестировал без партнеров и тоже хорошо работал.Я тестировал созданный Att с диапазоном вместо gte и lte с тем же неправильным результатом.

hlfv1

сервер остальных композиторов v0.16.6

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Я отвечаю на свой вопрос:

Я использовал hlfv1 и композитор 0.16.6

После обновления до hlfv11 и композитора 0.19.8 ошибка исправлена.

0 голосов
/ 08 июня 2018

это проблема фильтра с обратной связью, вероятнее всего связанная со сравнением диапазона дат.(другие сравнения хороши, как вы написали).

Предложение здесь -> https://github.com/strongloop/loopback-connector-mongodb/issues/176 предполагает, что вам нужно использовать оператор between вместо DateTimes.например,

{"where":{"createdAt":{"between": ['2018-01-05 10:00', '2018-05-10 10:00']}}}
...