Skip to content

Commit 4d15580

Browse files
feat: exist query operator implementation
1 parent 4c351e1 commit 4d15580

File tree

1 file changed

+35
-3
lines changed

1 file changed

+35
-3
lines changed

src/lib/query.ts

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,24 @@ export class Query extends BaseQuery {
201201
return this;
202202
}
203203

204+
/**
205+
* @method exists
206+
* @memberof Query
207+
* @description Returns the raw (JSON) query based on the filters applied on Query object.
208+
* @example
209+
* import contentstack from '@contentstack/delivery-sdk'
210+
*
211+
* const stack = contentstack.Stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
212+
* const query = stack.contentType("contentTypeUid").entry().query();
213+
* const result = await query.exists('fieldUid').find()
214+
*
215+
* @returns {Query}
216+
*/
217+
exists(key: string): Query {
218+
this._parameters[key] = { '$exists': true };
219+
return this;
220+
}
221+
204222
/**
205223
* @method notExists
206224
* @memberof Query
@@ -291,7 +309,7 @@ export class Query extends BaseQuery {
291309
*
292310
* const stack = contentstack.Stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
293311
* const query = stack.contentType('contenttype_uid').query().where('title', QueryOperation.EQUALS, 'value');
294-
* const entryQuery = await stack.contentType('contenttype_uid').query().referenceIn('reference_uid', query).find<TEntry>();
312+
* const entryQuery = await stack.contentType('contenttype_uid').query().referenceIn('reference_uid', query).find();
295313
*
296314
* @returns {Query}
297315
*/
@@ -309,7 +327,7 @@ export class Query extends BaseQuery {
309327
*
310328
* const stack = contentstack.Stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
311329
* const query = stack.contentType('contenttype_uid').query().where('title', QueryOperation.EQUALS, 'value');
312-
* const entryQuery = await stack.contentType('contenttype_uid').query().referenceNotIn('reference_uid', query).find<TEntry>();
330+
* const entryQuery = await stack.contentType('contenttype_uid').query().referenceNotIn('reference_uid', query).find();
313331
*
314332
* @returns {Query}
315333
*/
@@ -327,14 +345,28 @@ export class Query extends BaseQuery {
327345
*
328346
* const stack = contentstack.Stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
329347
* const query = stack.contentType('contenttype_uid').query().where('title', QueryOperation.EQUALS, 'value');
330-
* const entryQuery = await stack.contentType('contenttype_uid').query().tags(['tag1']).find<TEntry>();
348+
* const entryQuery = await stack.contentType('contenttype_uid').query().tags(['tag1']).find();
331349
*
332350
* @returns {Query}
333351
*/
334352
tags(values: (string | number | boolean)[]): Query {
335353
this._parameters['tags'] = values;
336354
return this;
337355
}
356+
357+
/**
358+
* @method search
359+
* @memberof Query
360+
* @description Returns the raw (JSON) query based on the filters applied on Query object.
361+
* @example
362+
* import contentstack from '@contentstack/delivery-sdk'
363+
*
364+
* const stack = contentstack.Stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
365+
* const query = stack.contentType('contenttype_uid').query().where('title', QueryOperation.EQUALS, 'value');
366+
* const entryQuery = await stack.contentType('contenttype_uid').query().search('key').find();
367+
*
368+
* @returns {Query}
369+
*/
338370
search(key: string): Query {
339371
this._queryParams['typeahead'] = key
340372
return this

0 commit comments

Comments
 (0)