Skip to content

Commit

Permalink
add function in qualifier.ts to check for key-value based freetext qu…
Browse files Browse the repository at this point in the history
…alifier and fix eslint error
  • Loading branch information
sugat009 committed Dec 4, 2024
1 parent 43c3896 commit f97f928
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 8 deletions.
6 changes: 3 additions & 3 deletions shared-libs/cht-datasource/src/local/contact.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { LocalDataContext, SettingsService } from './libs/data-context';
import { fetchAndFilter, getDocById, getDocsByIds, queryDocsByKey, queryDocsByRange } from './libs/doc';
import { ContactTypeQualifier, FreetextQualifier, UuidQualifier } from '../qualifier';
import { ContactTypeQualifier, FreetextQualifier, isKeyedFreetextQualifier, UuidQualifier } from '../qualifier';
import * as ContactType from '../contact-types';
import { deepCopy, isNonEmptyArray, NonEmptyArray, Nullable, Page } from '../libs/core';
import { Doc } from '../libs/doc';
Expand Down Expand Up @@ -115,7 +115,7 @@ export namespace v1 {
const getDocsFnForContactTypeAndFreetext = (
qualifier: ContactTypeQualifier & FreetextQualifier
): (limit: number, skip: number) => Promise<Nullable<Doc>[]> => {
if (qualifier.freetext.includes(':')) {
if (isKeyedFreetextQualifier(qualifier)) {
return (limit, skip) => getContactsByTypeFreetext(
[qualifier.contactType, qualifier.freetext],
limit,
Expand All @@ -141,7 +141,7 @@ export namespace v1 {
const getDocsFnForFreetextType = (
qualifier: FreetextQualifier
): (limit: number, skip: number) => Promise<Nullable<Doc>[]> => {
if (qualifier.freetext.includes(':')) {
if (isKeyedFreetextQualifier(qualifier)) {
return (limit, skip) => getContactsByFreetext([qualifier.freetext], limit, skip);
}
return (limit, skip) => getContactsByFreetextRange(
Expand Down
4 changes: 2 additions & 2 deletions shared-libs/cht-datasource/src/local/report.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { LocalDataContext } from './libs/data-context';
import { fetchAndFilter, getDocById, queryDocsByKey, queryDocsByRange } from './libs/doc';
import { FreetextQualifier, UuidQualifier } from '../qualifier';
import { FreetextQualifier, UuidQualifier, isKeyedFreetextQualifier } from '../qualifier';
import { Nullable, Page } from '../libs/core';
import * as Report from '../report';
import { Doc } from '../libs/doc';
Expand Down Expand Up @@ -45,7 +45,7 @@ export namespace v1 {
const getDocsFnForFreetextType = (
qualifier: FreetextQualifier
): (limit: number, skip: number) => Promise<Nullable<Doc>[]> => {
if (qualifier.freetext.includes(':')) {
if (isKeyedFreetextQualifier(qualifier)) {
return (limit, skip) => getReportsByFreetext([qualifier.freetext], limit, skip);
}
return (limit, skip) => getReportsByFreetextRange(
Expand Down
2 changes: 1 addition & 1 deletion shared-libs/cht-datasource/src/person.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { LocalDataContext } from './local/libs/data-context';
import { RemoteDataContext } from './remote/libs/data-context';
import { InvalidArgumentError } from './libs/error';
import { assertCursor, assertLimit, assertTypeQualifier, getPagedGenerator, Nullable, Page } from './libs/core';
import { DEFAULT_PEOPLE_PAGE_LIMIT } from "./constants";
import { DEFAULT_PEOPLE_PAGE_LIMIT } from './constants';

/** */
export namespace v1 {
Expand Down
2 changes: 1 addition & 1 deletion shared-libs/cht-datasource/src/place.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as Local from './local';
import * as Remote from './remote';
import { assertCursor, assertLimit, assertTypeQualifier, getPagedGenerator, Nullable, Page } from './libs/core';
import { InvalidArgumentError } from './libs/error';
import { DEFAULT_PLACE_PAGE_LIMIT } from "./constants";
import { DEFAULT_PLACE_PAGE_LIMIT } from './constants';

/** */
export namespace v1 {
Expand Down
9 changes: 9 additions & 0 deletions shared-libs/cht-datasource/src/qualifier.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,12 @@ export const byFreetext = (freetext: string): FreetextQualifier => {
export const isFreetextQualifier = (qualifier: unknown): qualifier is FreetextQualifier => {
return isRecord(qualifier);
};

/**
* Returns `true` if the given FreetextQualifier is also a Key-Value based qualifier in the pattern "key:value"
* @param qualifier the FreetextQualifier to check
* @returns `true` if the given FreetextQualifier is also a Key-Value based qualifier
*/
export const isKeyedFreetextQualifier = (qualifier: FreetextQualifier): boolean => {
return qualifier.freetext.includes(':');
};
2 changes: 1 addition & 1 deletion shared-libs/cht-datasource/src/report.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { InvalidArgumentError } from './libs/error';
import * as Local from './local';
import { FreetextQualifier, isUuidQualifier, UuidQualifier } from './qualifier';
import * as Remote from './remote';
import { DEFAULT_REPORT_PAGE_LIMIT } from "./constants";
import { DEFAULT_REPORT_PAGE_LIMIT } from './constants';

/** */
export namespace v1 {
Expand Down

0 comments on commit f97f928

Please sign in to comment.