How to use the objection.QueryBuilder function in objection

To help you get started, we’ve selected a few objection examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ditojs / dito / packages / server / src / query / QueryBuilder.js View on Github external
import objection from 'objection'
import { KnexHelper } from '@/lib'
import { QueryBuilderError } from '@/errors'
import { QueryHandlers } from './QueryHandlers'
import { QueryFilters } from './QueryFilters'
import PropertyRef from './PropertyRef'
import Graph from './Graph'
import eagerScope from './eagerScope'
import { isArray, isPlainObject, isString, asArray } from '@ditojs/utils'

// This code is based on objection-find, and simplified.
// Instead of a separate class, we extend objection.QueryBuilder to better
// integrate with Objection.js

export class QueryBuilder extends objection.QueryBuilder {
  constructor(modelClass) {
    super(modelClass)
    this._propertyRefsAllowed = null
    this._propertyRefsCache = {}
    this._applyDefaultEager = true
    this._applyDefaultInclude = true
    this._applyDefaultExclude = true
    this._applyDefaultOrder = true
    this._scopes = []
    this._include = null
    this._exclude = null
  }

  clone() {
    const clone = super.clone()
    clone._propertyRefsAllowed = this._propertyRefsAllowed
github ditojs / dito / packages / server / src / query / QueryBuilder.js View on Github external
import objection from 'objection'
import { KnexHelper } from '@/lib'
import { QueryBuilderError, RelationError } from '@/errors'
import { QueryParameters } from './QueryParameters'
import { GraphProcessor, walkGraph } from '@/graph'
import {
  isObject, isPlainObject, isString, isArray, clone,
  getDataPath, setDataPath, parseDataPath
} from '@ditojs/utils'
import { createLookup, getScope } from '@/utils'

// This code is based on objection-find, and simplified.
// Instead of a separate class, we extend objection.QueryBuilder to better
// integrate with Objection.js

export class QueryBuilder extends objection.QueryBuilder {
  constructor(modelClass) {
    super(modelClass)
    this._propertyRefsCache = {}
    this._allowScopes = null
    this._ignoreScopes = false
    this._ignoreEager = false
    this._appliedScopes = {}
    this._allowFilters = null
    this._clearScopes(true)
  }

  // @override
  clone() {
    const copy = super.clone()
    copy._propertyRefsCache = this._propertyRefsCache
    copy._copyScopes(this)
github smartprix / xorm / dist / query_builder.js View on Github external
'use strict';

Object.defineProperty(exports, "__esModule", {
	value: true
});

var _lodash = require('lodash');

var _lodash2 = _interopRequireDefault(_lodash);

var _objection = require('objection');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

class BaseQueryBuilder extends _objection.QueryBuilder {
	constructor(modelClass) {
		super(modelClass);

		this._handleSoftDelete();
		this._handleScopes();
	}

	loaderContext(ctx) {
		this.context().loaderContext = ctx;
	}

	loaderCtx(ctx) {
		this.context().loaderContext = ctx;
	}

	findById(id) {
github academia-de-codigo / noire-server / lib / models / search.js View on Github external
/**
 * Search QueryBuilder
 * @module
 */
const Hoek = require('@hapi/hoek');
const QueryBuilder = require('objection').QueryBuilder;

const internals = {};

/**
 * Adds where like clauses to query for all model searchable fields
 * @param {string} criteria the search criteria
 * @returns {SearchQueryBuilder} this query builder for chaining
 */
internals.searchEntity = function(criteria) {
    this._modelClass.searchFields.forEach(field => {
        this.orWhere(field, 'like', `%${criteria}%`);
    });

    return this;
};
github jmcdo29 / zeldaPlay / server / db / models / CustomQueryBuilder.js View on Github external
const QueryBuilder = require('objection').QueryBuilder;

class MyQueryBuilder extends QueryBuilder {

  upsert(model) {
    if (model.id && model.id !== null) {
      return new Promise((resolve, reject) => {
        resolve(this.findById(model.id));
      })
      .then(modelInstance => {
        if (!modelInstance) {
          throw new Error('No model found for ' + model.id);
        }
        return modelInstance.$query().patchAndFetch(model);
      })
      .catch(err => {
        return err;