mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
⚡ Add option to use Field IDs on Quickbase Node (#1651)
* QuickBase: Use FieldIDs instead of names * Fix name change * Delete tmp-209473KO4eyCT5LSi * Fix name change * Change default to false
This commit is contained in:
@@ -230,8 +230,8 @@ export class QuickBase implements INodeType {
|
||||
if (operation === 'create') {
|
||||
const tableId = this.getNodeParameter('tableId', 0) as string;
|
||||
|
||||
const { fieldsLabelKey, fieldsIdKey } = await getFieldsObject.call(this, tableId);
|
||||
|
||||
const useFieldIDs = this.getNodeParameter('useFieldIDs', 0) as boolean;
|
||||
|
||||
const simple = this.getNodeParameter('simple', 0) as boolean;
|
||||
|
||||
const data: IDataObject[] = [];
|
||||
@@ -244,10 +244,16 @@ export class QuickBase implements INodeType {
|
||||
const columns = this.getNodeParameter('columns', i) as string;
|
||||
|
||||
const columnList = columns.split(',').map(column => column.trim());
|
||||
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
if (fieldsLabelKey.hasOwnProperty(key) && columnList.includes(key)) {
|
||||
record[fieldsLabelKey[key].toString()] = { value: items[i].json[key] };
|
||||
if (useFieldIDs) {
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
record[key] = { value: items[i].json[key] };
|
||||
}
|
||||
} else {
|
||||
const { fieldsLabelKey } = await getFieldsObject.call(this, tableId);
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
if (fieldsLabelKey.hasOwnProperty(key) && columnList.includes(key)) {
|
||||
record[fieldsLabelKey[key].toString()] = { value: items[i].json[key] };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,8 +265,9 @@ export class QuickBase implements INodeType {
|
||||
to: tableId,
|
||||
};
|
||||
|
||||
// If not fields are set return at least the record id
|
||||
body.fieldsToReturn = [fieldsLabelKey['Record ID#']];
|
||||
// If no fields are set return at least the record id
|
||||
// 3 == Default Quickbase RecordID #
|
||||
body.fieldsToReturn = [3];
|
||||
|
||||
if (options.fields) {
|
||||
body.fieldsToReturn = options.fields as string[];
|
||||
@@ -275,7 +282,7 @@ export class QuickBase implements INodeType {
|
||||
for (const record of records) {
|
||||
const data: IDataObject = {};
|
||||
for (const [key, value] of Object.entries(record)) {
|
||||
data[fieldsIdKey[key]] = (value as IDataObject).value;
|
||||
data[key] = (value as IDataObject).value;
|
||||
}
|
||||
responseData.push(data);
|
||||
}
|
||||
@@ -365,6 +372,8 @@ export class QuickBase implements INodeType {
|
||||
|
||||
const { fieldsLabelKey, fieldsIdKey } = await getFieldsObject.call(this, tableId);
|
||||
|
||||
const useFieldIDs = this.getNodeParameter('useFieldIDs', 0) as boolean;
|
||||
|
||||
const simple = this.getNodeParameter('simple', 0) as boolean;
|
||||
|
||||
const updateKey = this.getNodeParameter('updateKey', 0) as string;
|
||||
@@ -380,9 +389,16 @@ export class QuickBase implements INodeType {
|
||||
|
||||
const columnList = columns.split(',').map(column => column.trim());
|
||||
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
if (fieldsLabelKey.hasOwnProperty(key) && columnList.includes(key)) {
|
||||
record[fieldsLabelKey[key].toString()] = { value: items[i].json[key] };
|
||||
if (useFieldIDs) {
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
record[key] = { value: items[i].json[key] };
|
||||
}
|
||||
} else {
|
||||
const { fieldsLabelKey } = await getFieldsObject.call(this, tableId);
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
if (fieldsLabelKey.hasOwnProperty(key) && columnList.includes(key)) {
|
||||
record[fieldsLabelKey[key].toString()] = { value: items[i].json[key] };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -390,8 +406,6 @@ export class QuickBase implements INodeType {
|
||||
throw new NodeOperationError(this.getNode(), `The update key ${updateKey} could not be found in the input`);
|
||||
}
|
||||
|
||||
record[fieldsLabelKey['Record ID#']] = { value: items[i].json[updateKey] };
|
||||
|
||||
data.push(record);
|
||||
}
|
||||
|
||||
@@ -400,8 +414,9 @@ export class QuickBase implements INodeType {
|
||||
to: tableId,
|
||||
};
|
||||
|
||||
// If not fields are set return at least the record id
|
||||
body.fieldsToReturn = [fieldsLabelKey['Record ID#']];
|
||||
// If no fields are set return at least the record id
|
||||
// 3 == Default Quickbase RecordID #
|
||||
//body.fieldsToReturn = [fieldsLabelKey['Record ID#']];
|
||||
|
||||
if (options.fields) {
|
||||
body.fieldsToReturn = options.fields as string[];
|
||||
@@ -432,7 +447,8 @@ export class QuickBase implements INodeType {
|
||||
if (operation === 'upsert') {
|
||||
const tableId = this.getNodeParameter('tableId', 0) as string;
|
||||
|
||||
const { fieldsLabelKey, fieldsIdKey } = await getFieldsObject.call(this, tableId);
|
||||
const useFieldIDs = this.getNodeParameter('useFieldIDs', 0) as boolean;
|
||||
|
||||
|
||||
const simple = this.getNodeParameter('simple', 0) as boolean;
|
||||
|
||||
@@ -451,9 +467,16 @@ export class QuickBase implements INodeType {
|
||||
|
||||
const columnList = columns.split(',').map(column => column.trim());
|
||||
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
if (fieldsLabelKey.hasOwnProperty(key) && columnList.includes(key)) {
|
||||
record[fieldsLabelKey[key].toString()] = { value: items[i].json[key] };
|
||||
if (useFieldIDs) {
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
record[key] = { value: items[i].json[key] };
|
||||
}
|
||||
} else {
|
||||
const { fieldsLabelKey } = await getFieldsObject.call(this, tableId);
|
||||
for (const key of Object.keys(items[i].json)) {
|
||||
if (fieldsLabelKey.hasOwnProperty(key) && columnList.includes(key)) {
|
||||
record[fieldsLabelKey[key].toString()] = { value: items[i].json[key] };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -472,8 +495,9 @@ export class QuickBase implements INodeType {
|
||||
mergeFieldId,
|
||||
};
|
||||
|
||||
// If not fields are set return at least the record id
|
||||
body.fieldsToReturn = [fieldsLabelKey['Record ID#']];
|
||||
// If no fields are set return at least the record id
|
||||
// 3 == Default Quickbase RecordID #
|
||||
body.fieldsToReturn = [3];
|
||||
|
||||
if (options.fields) {
|
||||
body.fieldsToReturn = options.fields as string[];
|
||||
@@ -488,7 +512,7 @@ export class QuickBase implements INodeType {
|
||||
for (const record of records) {
|
||||
const data: IDataObject = {};
|
||||
for (const [key, value] of Object.entries(record)) {
|
||||
data[fieldsIdKey[key]] = (value as IDataObject).value;
|
||||
data[key] = (value as IDataObject).value;
|
||||
}
|
||||
responseData.push(data);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user