How to use the faunadb.Client 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 netlify / netlify-dev-plugin / src / functions-templates / js / fauna-crud / create-schema.js View on Github external
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(
        q.Create(q.Ref("indexes"), {
          name: "all_items",
          source: q.Ref("classes/items"),
          active: true
        })
      );
    })
github netlify / netlify-faunadb-example / functions / todos-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 = (event, context) => {
  console.log('Function `todo-read-all` invoked')
  return client.query(q.Paginate(q.Match(q.Ref('indexes/all_todos'))))
    .then((response) => {
      const todoRefs = response.data
      console.log('Todo refs', todoRefs)
      console.log(`${todoRefs.length} todos found`)
      // create new query out of todo refs. http://bit.ly/2LG3MLg
      const getAllTodoDataQuery = todoRefs.map((ref) => {
        return q.Get(ref)
      })
      // then query the refs
      return client.query(getAllTodoDataQuery).then((ret) => {
github DavidWells / netlify-functions-workshop / lessons / use-cases / 1-rest-api / functions / methods / 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
})

module.exports = 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/todos/${id}`), { data }))
    .then(response => {
      console.log('success', response)
      return {
        statusCode: 200,
        body: JSON.stringify(response)
      }
    })
github laardee / serverless-authentication-boilerplate / authentication / lib / storage / fauna / faunaCache.js View on Github external
'use strict';

// Common
const config = { secret: process.env.FAUNADB_SECRET };

const faunadb = require('faunadb');

const q = faunadb.query;
const client = new faunadb.Client(config);

const crypto = require('crypto');
const Promise = require('bluebird');

const log = require('../../helpers').log;

function hash() {
  return crypto.randomBytes(48).toString('hex');
}

/**
 * Creates OAuth State
 */
const createState = () => {
  const state = hash();
  return client.query(q.Create(q.Class('auth_cache'), {
github philhawksworth / virtual-lolly / src / functions / getLolly.js View on Github external
const faunadb = require('faunadb');

require('dotenv').config();

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

exports.handler = (event, context, callback) => {

  const path = event.queryStringParameters.id.replace("/", "");

  client.query(
    q.Get(q.Match(q.Index("lolly_by_path"), path))
  ).then((response) => {

    // if found return a view
    return callback(null, {
      statusCode: 200,
      body: JSON.stringify(response.data)
    });
github philhawksworth / virtual-lolly / src / functions / newLolly.js View on Github external
const faunadb = require('faunadb');
const shortid = require('shortid');
const querystring = require('querystring');
const axios = require('axios');

require('dotenv').config();

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


/* export our lambda function as named "handler" export */
exports.handler = (event, context, callback) => {

  // get the form data
  const data = querystring.parse(event.body);

  // add a unique path id
  const uniquePath = shortid.generate();
  data.lollyPath = uniquePath;
  const lolly = {
    data: data
  };
github fauna / todomvc-fauna-spa / schema.js View on Github external
const faunadb = require('faunadb');
const q = faunadb.query;

// We are assuming you created a database using https://dashboard.fauna.com
// and have pasted the secret for a server key to that database into
// MY_FAUNADB_SERVER_SECRET
// You also need to create a client key to paste into FAUNADB_CLIENT_SECRET
// in src/Login.js
const client = new faunadb.Client({
  secret: MY_FAUNADB_SERVER_SECRET
});

client.query(
    q.CreateClass({
      name: "users",
      permissions: {
        create: "public"
      }
    }))
  .then(() => client.query(
    q.Do(
      q.CreateClass({
        name: "todos",
        permissions: {
          create: q.Class("users")
github fauna / todomvc-fauna-spa / src / TodoModel.js View on Github external
onAuthChange(auth, inform) {
    this.list = null;
    this.todos = [];
    this.lists = [];
    this.client = new faunadb.Client({
      secret: auth.faunadb_secret
    });

    console.log("onAuthChange", auth, inform);

    if (inform) {
      this.inform()
    }
  }
github bloom510 / faunadb-nodejs-examples / auth / fql-auth / bootstrap / index.js View on Github external
const envfile = require("envfile");

const env = envfile.parseFileSync(".env");

const faunadb = require("faunadb");
const {
  Create,
  Collection,
  CreateDatabase,
  CreateCollection,
  CreateIndex,
  CreateKey,
  Database
} = faunadb.query;

let client = new faunadb.Client({ secret: process.env.FDB_FQL_ADMIN_KEY });

const createDB = async () => {
  try {
    const _db = await client.query(CreateDatabase({ name: "testdb" }));
    console.log("New DB created:", _db);
  } catch (e) {
    console.log(e);
  }
};

const createKeys = async () => {
  let _server, _client;
  try {
    _server = await client.query(
      CreateKey({ database: Database("testdb"), role: "server" })
    );
github fauna / fauna-market / src / model.js View on Github external
setupSession() {
    var secret = window.location.hash;
    if (secret) {
      const client = new faunadb.Client({
        secret: secret.substr(1)
      });
      console.log("testClient", secret)
      return client.query(true).then(() => {
        this.client = client;
        return true;
      }).catch((error) => {
        console.log("setupSession error",error)
        window.location.hash = "";
        return this.setupSession();
      });
    } else {
      console.log("geting session from", process.env.REACT_APP_SESSION_ENDPOINT)
      return fetch(process.env.REACT_APP_SESSION_ENDPOINT, { method: 'post' }).then((r) => r.json()).then((data) => {
        window.location.hash = data.sessionId;
        return this.setupSession();