Socket
Socket
Sign inDemoInstall

query-builder-for-driveapi

Package Overview
Dependencies
0
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    query-builder-for-driveapi

Easily generate queries for the Google Drive API.


Version published
Weekly downloads
7
Maintainers
1
Install size
22.8 kB
Created
Weekly downloads
 

Changelog

Source

2.0.2 (2023-12-31)

Bug Fixes

  • cjs output exports (d6877a2)
  • escape quotes in inputs (68db58e)

Readme

Source

Query Builder for DriveAPI

node-current version downloads

Easily generate queries for the Google Drive API.

Installation

npm install query-builder-for-driveapi

Importing

// Using ES6 Imports
import QueryBuilder, { Collection, FileType, VisibilityLevel } from 'query-builder-for-driveapi'

// Using CommonJS
const QueryBuilder = require('query-builder-for-driveapi')
const { Collection, FileType, VisibilityLevel } = QueryBuilder

Usage

// Create an instance
const qb = new QueryBuilder()

// Add inputs (queries)
qb.getByCollection(Collection.PARENTS, 'parent-id')
qb.getByFileName('something')

// Build inputs (queries) in a query
const query = qb.build()
//=> ('parent-id' in parents) and (name = 'something')

API Reference

Constructor

Create an instance of QueryBuilder.

new QueryBuilder()

Methods

From now on all the examples of each method will use an instance of QueryBuilder associated to the constant qb.

getByCollection(collection, value)

Indicates whether the collection contains the specified values.

collection

Type: Collection

  • Collection.PARENTS:
qb.getByCollection(Collection.PARENTS, ...).build()
//=> ('...' in parents)
  • Collection.OWNERS:
qb.getByCollection(Collection.OWNERS, ...).build()
//=> ('...' in owners)
  • Collection.WRITERS:
qb.getByCollection(Collection.WRITERS, ...).build()
//=> ('...' in writers)
  • Collection.READERS:
qb.getByCollection(Collection.READERS, ...).build()
//=> ('...' in readers)
value

Type: string | string[]

qb.getByCollection(..., 'value').build()
//=> ('value' in ...)

qb.getByCollection(..., ['value-1', 'value-2']).build()
//=> ('value-1' in ... or 'value-2' in ...)
getByFileName(filename)

Indicates whether the file name is equal to the specified file name.

filename

Type: string | string[]

qb.getByFileName('value').build()
//=> (name = 'value')

qb.getByFileName(['value-1', 'value-2']).build()
//=> (name = 'value-1' or name = 'value-2')
getByContent(value)

Indicates whether the file name, description, indexableText or content text properties or metadata of the file contains the specified value.

value

Type: string | string[]

qb.getByContent('value').build()
//=> (fullText = 'value')

qb.getByContent(['value-1', 'value-2']).build()
//=> (fullText = 'value-1' or fullText = 'value-2')
getByFileType(filetype)

Indicates whether the MIME type of the file is equal to the specified file type.

filetype

Type: string | FileType | (string | FileType)[]

  • FileType.FOLDER:
qb.getByFileType(FileType.FOLDER).build()
//=> (mimeType = 'application/vnd.google-apps.folder')
  • FileType.DOCUMENT:
qb.getByFileType(FileType.DOCUMENT).build()
//=> (mimeType = 'application/vnd.google-apps.document')
  • FileType.SPREADSHEET:
qb.getByFileType(FileType.SPREADSHEET).build()
//=> (mimeType = 'application/vnd.google-apps.spreadsheet')
  • FileType.PRESENTATION:
qb.getByFileType(FileType.PRESENTATION).build()
//=> (mimeType = 'application/vnd.google-apps.presentation')
  • FileType.FORM:
qb.getByFileType(FileType.FORM).build()
//=> (mimeType = 'application/vnd.google-apps.form')
  • Others:
qb.getByFileType('image/jpeg').build()
//=> (mimeType = 'image/jpeg')

qb.getByFileType(['image/png', FileType.DOCUMENT]).build()
//=> (mimeType = 'image/png' or mimeType = 'application/vnd.google-apps.document')
getByCreatedAt(timestamp)

Indicates whether the creation date of the file is equal to the specified timestamp.

timestamp

Type: string | string[]

Uses RFC 3339 format, the default timezone is UTC, such as 2011-10-05T14:48:00Z.

qb.getByCreatedAt('2011-10-05T14:48:00Z').build()
//=> (createdTime = '2011-10-05T14:48:00Z')

qb.getByCreatedAt(['2019-09-07T15:50Z', '2012-06-04T12:00:00Z']).build()
//=> (createdTime = '2019-09-07T15:50Z' or createdTime = '2012-06-04T12:00:00Z')
getByUpdatedAt(timestamp)

Indicates whether the modified date of the file is equal to the specified timestamp.

timestamp

Type: string | string[]

Uses RFC 3339 format, the default timezone is UTC, such as 2011-10-05T14:48:00Z.

qb.getByUpdatedAt('2011-10-05T14:48:00Z').build()
//=> (modifiedTime = '2011-10-05T14:48:00Z')

qb.getByUpdatedAt(['2019-09-07T15:50Z', '2012-06-04T12:00:00Z']).build()
//=> (modifiedTime = '2019-09-07T15:50Z' or modifiedTime = '2012-06-04T12:00:00Z')
getByVisibility(visibilityLevel)

Indicates whether the visibility level of the file is equal to the specified visibility level.

visibilityLevel

Type: VisibilityLevel | VisibilityLevel[]

  • VisibilityLevel.ANYONE_CAN_FIND:
qb.getByVisibility(VisibilityLevel.ANYONE_CAN_FIND).build()
//=> (visibilityLevel = 'anyoneCanFind')
  • VisibilityLevel.ANYONE_WITH_LINK:
qb.getByVisibility(VisibilityLevel.ANYONE_WITH_LINK).build()
//=> (visibilityLevel = 'anyoneWithLink')
  • VisibilityLevel.DOMAIN_CAN_FIND:
qb.getByVisibility(VisibilityLevel.DOMAIN_CAN_FIND).build()
//=> (visibilityLevel = 'domainCanFind')
  • VisibilityLevel.DOMAIN_WITH_LINK:
qb.getByVisibility(VisibilityLevel.DOMAIN_WITH_LINK).build()
//=> (visibilityLevel = 'domainWithLink')
  • VisibilityLevel.LIMITED:
qb.getByVisibility(VisibilityLevel.LIMITED).build()
//=> (visibilityLevel = 'limited')
getByPublicProp(properties)

Indicates whether the file has the specified public properties.

properties

Type: Record<string, unknown>

qb.getByPublicProp({
  name: 'wrench',
  mass: 1.3 // kg
}).build()
//=> (properties has { key='name' and value='wrench' } and properties has { key='mass' and value='1.3' })
getByPrivateProp(properties)

Indicates whether the file has the specified private properties.

properties

Type: Record<string, unknown>

qb.getByPrivateProp({
  deviceId: 'd65dd82e-46fe-448f-a6fd-96009a8f97e4'
}).build()
//=> (appProperties has { key='deviceId' and value='d65dd82e-46fe-448f-a6fd-96009a8f97e4' })
isTrashed(boolean)

Indicates whether the file is in the trash or not.

qb.isTrashed(true).build()
//=> (trashed = true)
isStarred(boolean)

Indicates whether the file is starred or not.

qb.isStarred(true).build()
//=> (starred = true)
isHidden(boolean)

Indicates whether the shared drive is hidden or not.

qb.isHidden(true).build()
//=> (hidden = true)
not()

Negate the immediately following input (query).

qb.not().getByCollection(Collection.PARENTS, 'parent-id').build()
//=> not ('parent-id' in parents)

qb.not().getByCollection(Collection.PARENTS, ['parent-1', 'parent-2']).build()
//=> not ('parent-1' in parents or 'parent-2' in parents)
build()

Joins the inputs into a single string with the and operator.

qb.getByCollection(Collection.PARENTS, 'parent-id')
qb.getByFileName('something')

qb.build()
//=> ('parent-id' in parents) and (name = 'something')

© 2023 - Brian Fernandez

This project is licensed under the MIT license. See the file LICENSE for details.

Disclaimer

No affiliation with Google Inc.

This package is a third-party offering and is not a product of Google Inc.

Google Drive™ is a trademark of Google Inc.

Keywords

FAQs

Last updated on 31 Dec 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc