Skip to content

Commit 015dcf2

Browse files
committed
Update REST and wire protocol query constants for startAfter, endBefore
1 parent 8a6e9e6 commit 015dcf2

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

packages/database/src/core/view/QueryParams.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ import { RangedFilter } from './filter/RangedFilter';
3636
const enum WIRE_PROTOCOL_CONSTANTS {
3737
INDEX_START_VALUE = 'sp',
3838
INDEX_START_NAME = 'sn',
39+
INDEX_START_IS_INCLUSIVE = 'sin',
3940
INDEX_END_VALUE = 'ep',
4041
INDEX_END_NAME = 'en',
42+
INDEX_END_IS_INCLUSIVE = 'ein',
4143
LIMIT = 'l',
4244
VIEW_FROM = 'vf',
4345
VIEW_FROM_LEFT = 'l',
@@ -53,8 +55,10 @@ const enum REST_QUERY_CONSTANTS {
5355
PRIORITY_INDEX = '$priority',
5456
VALUE_INDEX = '$value',
5557
KEY_INDEX = '$key',
58+
START_AFTER = 'startAfter',
5659
START_AT = 'startAt',
5760
END_AT = 'endAt',
61+
END_BEFORE = 'endBefore',
5862
LIMIT_TO_FIRST = 'limitToFirst',
5963
LIMIT_TO_LAST = 'limitToLast'
6064
}
@@ -374,18 +378,22 @@ export function queryParamsToRestQueryStringParameters(
374378
qs[REST_QUERY_CONSTANTS.ORDER_BY] = stringify(orderBy);
375379

376380
if (queryParams.startSet_) {
377-
qs[REST_QUERY_CONSTANTS.START_AT] = stringify(queryParams.indexStartValue_);
381+
const startParam = queryParams.startAfterSet_
382+
? REST_QUERY_CONSTANTS.START_AFTER
383+
: REST_QUERY_CONSTANTS.START_AT;
384+
qs[startParam] = stringify(queryParams.indexStartValue_);
378385
if (queryParams.startNameSet_) {
379-
qs[REST_QUERY_CONSTANTS.START_AT] +=
380-
',' + stringify(queryParams.indexStartName_);
386+
qs[startParam] += ',' + stringify(queryParams.indexStartName_);
381387
}
382388
}
383389

384390
if (queryParams.endSet_) {
385-
qs[REST_QUERY_CONSTANTS.END_AT] = stringify(queryParams.indexEndValue_);
391+
const endParam = queryParams.endBeforeSet_
392+
? REST_QUERY_CONSTANTS.END_BEFORE
393+
: REST_QUERY_CONSTANTS.END_AT;
394+
qs[endParam] = stringify(queryParams.indexEndValue_);
386395
if (queryParams.endNameSet_) {
387-
qs[REST_QUERY_CONSTANTS.END_AT] +=
388-
',' + stringify(queryParams.indexEndName_);
396+
qs[endParam] += ',' + stringify(queryParams.indexEndName_);
389397
}
390398
}
391399

@@ -411,12 +419,16 @@ export function queryParamsGetQueryObject(
411419
obj[WIRE_PROTOCOL_CONSTANTS.INDEX_START_NAME] =
412420
queryParams.indexStartName_;
413421
}
422+
obj[WIRE_PROTOCOL_CONSTANTS.INDEX_START_IS_INCLUSIVE] =
423+
!queryParams.startAfterSet_;
414424
}
415425
if (queryParams.endSet_) {
416426
obj[WIRE_PROTOCOL_CONSTANTS.INDEX_END_VALUE] = queryParams.indexEndValue_;
417427
if (queryParams.endNameSet_) {
418428
obj[WIRE_PROTOCOL_CONSTANTS.INDEX_END_NAME] = queryParams.indexEndName_;
419429
}
430+
obj[WIRE_PROTOCOL_CONSTANTS.INDEX_END_IS_INCLUSIVE] =
431+
!queryParams.endBeforeSet_;
420432
}
421433
if (queryParams.limitSet_) {
422434
obj[WIRE_PROTOCOL_CONSTANTS.LIMIT] = queryParams.limit_;

0 commit comments

Comments
 (0)