Merge branch 'linked-records' of github.com:Budibase/budibase into linked-records

This commit is contained in:
Andrew Kingston 2020-10-02 18:35:27 +01:00
commit eea35b6dfb
5 changed files with 19 additions and 10 deletions

View File

@ -128,14 +128,14 @@ describe("/automations", () => {
it("should setup the automation fully", () => { it("should setup the automation fully", () => {
let trigger = TRIGGER_DEFINITIONS["RECORD_SAVED"] let trigger = TRIGGER_DEFINITIONS["RECORD_SAVED"]
trigger.id = "wadiawdo34" trigger.id = "wadiawdo34"
let saveAction = ACTION_DEFINITIONS["SAVE_RECORD"] let createAction = ACTION_DEFINITIONS["CREATE_RECORD"]
saveAction.inputs.record = { createAction.inputs.record = {
name: "{{trigger.name}}", name: "{{trigger.name}}",
description: "{{trigger.description}}" description: "{{trigger.description}}"
} }
saveAction.id = "awde444wk" createAction.id = "awde444wk"
TEST_AUTOMATION.definition.steps.push(saveAction) TEST_AUTOMATION.definition.steps.push(createAction)
TEST_AUTOMATION.definition.trigger = trigger TEST_AUTOMATION.definition.trigger = trigger
}) })

View File

@ -1,5 +1,5 @@
const sendEmail = require("./steps/sendEmail") const sendEmail = require("./steps/sendEmail")
const saveRecord = require("./steps/saveRecord") const createRecord = require("./steps/createRecord")
const updateRecord = require("./steps/updateRecord") const updateRecord = require("./steps/updateRecord")
const deleteRecord = require("./steps/deleteRecord") const deleteRecord = require("./steps/deleteRecord")
const createUser = require("./steps/createUser") const createUser = require("./steps/createUser")
@ -17,14 +17,14 @@ const DEFAULT_DIRECTORY = ".budibase-automations"
const AUTOMATION_MANIFEST = "manifest.json" const AUTOMATION_MANIFEST = "manifest.json"
const BUILTIN_ACTIONS = { const BUILTIN_ACTIONS = {
SEND_EMAIL: sendEmail.run, SEND_EMAIL: sendEmail.run,
SAVE_RECORD: saveRecord.run, CREATE_RECORD: createRecord.run,
UPDATE_RECORD: updateRecord.run, UPDATE_RECORD: updateRecord.run,
DELETE_RECORD: deleteRecord.run, DELETE_RECORD: deleteRecord.run,
CREATE_USER: createUser.run, CREATE_USER: createUser.run,
} }
const BUILTIN_DEFINITIONS = { const BUILTIN_DEFINITIONS = {
SEND_EMAIL: sendEmail.definition, SEND_EMAIL: sendEmail.definition,
SAVE_RECORD: saveRecord.definition, CREATE_RECORD: createRecord.definition,
UPDATE_RECORD: updateRecord.definition, UPDATE_RECORD: updateRecord.definition,
DELETE_RECORD: deleteRecord.definition, DELETE_RECORD: deleteRecord.definition,
CREATE_USER: createUser.definition, CREATE_USER: createUser.definition,

View File

@ -7,7 +7,7 @@ module.exports.definition = {
icon: "ri-save-3-fill", icon: "ri-save-3-fill",
description: "Add a row to your database", description: "Add a row to your database",
type: "ACTION", type: "ACTION",
stepId: "SAVE_RECORD", stepId: "CREATE_RECORD",
inputs: {}, inputs: {},
schema: { schema: {
inputs: { inputs: {

View File

@ -55,7 +55,15 @@ module.exports.definition = {
} }
module.exports.run = async function filter({ inputs }) { module.exports.run = async function filter({ inputs }) {
const { field, condition, value } = inputs let { field, condition, value } = inputs
// coerce types so that we can use them
if (!isNaN(value) && !isNaN(field)) {
value = parseFloat(value)
field = parseFloat(field)
} else if (!isNaN(Date.parse(value)) && !isNaN(Date.parse(field))) {
value = Date.parse(value)
field = Date.parse(field)
}
let success let success
if (typeof field !== "object" && typeof value !== "object") { if (typeof field !== "object" && typeof value !== "object") {
switch (condition) { switch (condition) {

View File

@ -1,5 +1,6 @@
const CouchDB = require("../index") const CouchDB = require("../index")
const { IncludeDocs, getLinkDocuments } = require("./linkUtils") const { IncludeDocs, getLinkDocuments } = require("./linkUtils")
const { generateLinkID } = require("../utils")
/** /**
* Creates a new link document structure which can be put to the database. It is important to * Creates a new link document structure which can be put to the database. It is important to
@ -22,7 +23,7 @@ function LinkDocument(
recordId2 recordId2
) { ) {
// build the ID out of unique references to this link document // build the ID out of unique references to this link document
this._id = `${modelId1}/${modelId2}/${fieldName1}/${fieldName2}/${recordId1}/${recordId2}` this._id = generateLinkID(modelId1, modelId2, recordId1, recordId2)
// required for referencing in view // required for referencing in view
this.type = "link" this.type = "link"
this.doc1 = { this.doc1 = {