How to use the faunadb.query function in faunadb

To help you get started, we’ve selected a few faunadb 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 laardee / serverless-authentication-boilerplate / test-token / handler.js View on Github external
const userClassName = process.env.USERS_CLASS_NAME || 'users' // shared with authentication service
const faunadb = require('faunadb')

const q = faunadb.query

const createResponse = (statusCode, payload) => ({
  statusCode,
  headers: {
    'Access-Control-Allow-Origin': '*',
    'Access-Control-Allow-Credentials': true
  },
  body: JSON.stringify(payload)
})

module.exports.test = (event, context, cb) => {
  console.log('event', event)
  const authData = event.requestContext.authorizer
  if (authData.principalId) {
    if (authData.faunadb) {
      const client = new faunadb.Client({ secret: authData.faunadb })
github DavidWells / netlify-functions-workshop / lessons-code-complete / core-concepts / 8-using-addons / functions / todos-read.js View on Github external
/* Import faunaDB sdk */
const faunadb = require('faunadb')
const getId = require('./utils/getId')

const q = faunadb.query
const client = new faunadb.Client({
  secret: process.env.FAUNADB_SERVER_SECRET
})

exports.handler = (event, context, callback) => {
  const id = getId(event.path)
  console.log(`Function 'todo-read' invoked. Read id: ${id}`)
  return client.query(q.Get(q.Ref(`classes/todos/${id}`)))
    .then((response) => {
      console.log('success', response)
      return callback(null, {
        statusCode: 200,
        body: JSON.stringify(response)
      })
    }).catch((error) => {
      console.log('error', error)
github netlify / netlify-dev-plugin / src / functions-templates / js / fauna-crud / create-schema.js View on Github external
#!/usr/bin/env node

/* bootstrap database in your FaunaDB account - use with `netlify dev:exec ` */
const faunadb = require("faunadb");

const q = faunadb.query;

function createFaunaDB() {
  if (!process.env.FAUNADB_SERVER_SECRET) {
    console.log("No FAUNADB_SERVER_SECRET in environment, skipping DB setup");
  }
  console.log("Create the database!");
  const client = new faunadb.Client({
    secret: process.env.FAUNADB_SERVER_SECRET
  });

  /* Based on your requirements, change the schema here */
  return client
    .query(q.Create(q.Ref("classes"), { name: "items" }))
    .then(() => {
      console.log("Created items class");
      return client.query(
github netlify / netlify-dev-plugin / src / functions-templates / js / fauna-crud / update.js View on Github external
/* Import faunaDB sdk */
const faunadb = require("faunadb");

const q = faunadb.query;
const client = new faunadb.Client({
  secret: process.env.FAUNADB_SERVER_SECRET
});

exports.handler = async (event, context) => {
  const data = JSON.parse(event.body);
  const id = event.id;
  console.log(`Function 'update' invoked. update id: ${id}`);
  return client
    .query(q.Update(q.Ref(`classes/items/${id}`), { data }))
    .then(response => {
      console.log("success", response);
      return {
        statusCode: 200,
        body: JSON.stringify(response)
      };
github netlify / netlify-dev-plugin / src / functions-templates / js / fauna-crud / read-all.js View on Github external
/* Import faunaDB sdk */
const faunadb = require("faunadb");

const q = faunadb.query;
const client = new faunadb.Client({
  secret: process.env.FAUNADB_SERVER_SECRET
});

exports.handler = async (event, context) => {
  console.log("Function `read-all` invoked");
  return client
    .query(q.Paginate(q.Match(q.Ref("indexes/all_items"))))
    .then(response => {
      const itemRefs = response.data;
      // create new query out of item refs. http://bit.ly/2LG3MLg
      const getAllItemsDataQuery = itemRefs.map(ref => {
        return q.Get(ref);
      });
      // then query the refs
      return client.query(getAllItemsDataQuery).then(ret => {
github philhawksworth / virtual-lolly / src / site / _data / prod / lollies.js View on Github external
const faunadb = require('faunadb');
const seed   = require('../../../utils/save-seed.js');

require('dotenv').config();

const q = faunadb.query;
const client = new faunadb.Client({
  secret: process.env.FAUNADB_SERVER_SECRET
});

module.exports = () => {
  return new Promise((resolve, reject) => {
    client.query(
      q.Paginate(q.Match(q.Ref("indexes/all_lollies")),{size:100000})
    ).then((response) => {
      const lollies = response.data;

      console.log('Lolly pages to generate:', lollies.length);

      const getAllDataQuery = lollies.map((ref) => {
        return q.Get(ref);
      });
github netlify / netlify-faunadb-example / functions / todos-update.js View on Github external
const faunadb = require('faunadb')
const getId = require('./utils/getId')

const q = faunadb.query
const client = new faunadb.Client({
  secret: process.env.FAUNADB_SERVER_SECRET
})

exports.handler = (event, context) => {
  const data = JSON.parse(event.body)
  const id = getId(event.path)
  console.log(`Function 'todo-update' invoked. update id: ${id}`)
  return client.query(q.Update(q.Ref(`classes/todos/${id}`), {data}))
    .then((response) => {
      console.log('success', response)
      return {
        statusCode: 200,
        body: JSON.stringify(response)
      }
    }).catch((error) => {
github fauna / fauna-shell / src / commands / delete-database.js View on Github external
const FaunaCommand = require('../lib/fauna-command.js')
const {errorOut} = require('../lib/misc.js')
const faunadb = require('faunadb')
const q = faunadb.query

class DeleteDatabaseCommand extends FaunaCommand {
  async run() {
    const log = this.log
    const dbname = this.args.dbname
    return this.query(
      q.Delete(q.Database(dbname)),
      `deleting database '${dbname}'`,
      function (_) {
        log(`database '${dbname}' deleted`)
      },
      function (error) {
        if (error.message === 'invalid ref') {
          errorOut(`Database '${dbname}' not found`, 1)
        } else {
          errorOut(`Error: ${error.message}`, 1)
github fauna / fauna-shell / src / commands / shell.js View on Github external
const FaunaCommand = require('../lib/fauna-command.js')
const {errorOut} = require('../lib/misc.js')
const faunadb = require('faunadb')
const q = faunadb.query
const repl = require('repl')
const util = require('util')

/**
* We need this function to allow multi-line javascript objects
* to be entered. Without this check, the following object will
* produce an error:
*
* { a: 'a string',
*   b: 1,
*   c: Bytes("AQID"),
*   d: [ 1, 2 ],
*   e: { a: 'another string' } }
*
*/
function isRecoverableError(error) {