Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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 })
/* 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)
#!/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(
/* 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)
};
/* 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 => {
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);
});
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) => {
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)
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) {