n8n-nodes-imobzi
Version:
Nodes para integração com a API da Imobzi no n8n
1,063 lines • 68.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Imobzi = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const resourceEndpoint = {
lead: 'leads',
property: 'properties',
contact: 'contacts',
contrato: 'contracts',
financeiro: 'financial/accounts',
locacao: 'rentals',
documento: 'documents',
tarefa: 'tasks',
agenda: 'agendas',
evento: 'events',
integracao: 'integrations',
usuario: 'users',
account: 'account',
};
const createCreateFieldsProperty = (resourceName) => ({
displayName: 'Create Fields',
name: 'createFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [resourceName],
operation: ['create'],
},
},
options: [
{
displayName: 'Date',
name: 'date',
type: 'string',
default: '',
description: 'Date of the item',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Description of the item',
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'Email address',
},
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'Name of the item',
},
{
displayName: 'Phone',
name: 'phone',
type: 'string',
default: '',
description: 'Phone number',
},
{
displayName: 'Title',
name: 'title',
type: 'string',
default: '',
description: 'Title of the item',
},
{
displayName: 'Value',
name: 'value',
type: 'number',
default: 0,
description: 'Value of the item',
},
],
});
const createUpdateFieldsProperty = (resourceName) => ({
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [resourceName],
operation: ['update'],
},
},
options: [
{
displayName: 'Date',
name: 'date',
type: 'string',
default: '',
description: 'Date of the item',
},
{
displayName: 'Description',
name: 'description',
type: 'string',
default: '',
description: 'Description of the item',
},
{
displayName: 'Email',
name: 'email',
type: 'string',
placeholder: 'name@email.com',
default: '',
description: 'Email address',
},
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'Name of the item',
},
{
displayName: 'Phone',
name: 'phone',
type: 'string',
default: '',
description: 'Phone number',
},
{
displayName: 'Title',
name: 'title',
type: 'string',
default: '',
description: 'Title of the item',
},
{
displayName: 'Value',
name: 'value',
type: 'number',
default: 0,
description: 'Value of the item',
},
],
});
class Imobzi {
constructor() {
this.methods = {
loadOptions: {
async getLeads() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/leads' });
return (response.data || []).map((item) => ({
name: item.name || `ID ${item.id}`,
value: item.id,
}));
},
async getLeadFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/leads', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getProperties() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/properties' });
return (response.data || []).map((item) => ({
name: item.title || item.titulo || `ID ${item.id}`,
value: item.id,
}));
},
async getPropertyFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/properties', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getContacts() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/contacts' });
return (response.data || []).map((item) => ({
name: item.name || `ID ${item.id}`,
value: item.id,
}));
},
async getContactFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/contacts', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getContracts() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/contracts' });
return (response.data || []).map((item) => ({
name: item.client || item.cliente || `ID ${item.id}`,
value: item.id,
}));
},
async getContractFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/contracts', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getFinancialAccounts() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/financial/accounts' });
return (response.data || []).map((item) => ({
name: item.description || item.descricao || `ID ${item.id}`,
value: item.id,
}));
},
async getFinancialAccountFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/financial/accounts', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getRentals() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/rentals' });
return (response.data || []).map((item) => ({
name: item.tenant || item.inquilino || `ID ${item.id}`,
value: item.id,
}));
},
async getRentalFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/rentals', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getDocuments() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/documents' });
return (response.data || []).map((item) => ({
name: item.filename || item.nomeArquivo || `ID ${item.id}`,
value: item.id,
}));
},
async getDocumentFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/documents', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getTasks() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/tasks' });
return (response.data || []).map((item) => ({
name: item.title || item.titulo || `ID ${item.id}`,
value: item.id,
}));
},
async getTaskFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/tasks', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getAgendas() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/agendas' });
return (response.data || []).map((item) => ({
name: item.title || item.titulo || `ID ${item.id}`,
value: item.id,
}));
},
async getAgendaFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/agendas', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getEvents() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/events' });
return (response.data || []).map((item) => ({
name: item.title || item.titulo || `ID ${item.id}`,
value: item.id,
}));
},
async getEventFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/events', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getIntegrations() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/integrations' });
return (response.data || []).map((item) => ({
name: item.name || item.nome || `ID ${item.id}`,
value: item.id,
}));
},
async getIntegrationFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/integrations', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
async getUsers() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/users' });
return (response.data || []).map((item) => ({
name: item.name || item.nome || `ID ${item.id}`,
value: item.id,
}));
},
async getUserFields() {
const response = await this.helpers.requestWithAuthentication.call(this, 'imobziApi', { method: 'GET', url: '/users', qs: { limit: 1 } });
const item = (response.data || [])[0] || {};
return Object.keys(item).map(key => ({
name: key,
value: key,
}));
},
},
};
this.description = {
displayName: 'Imobzi',
name: 'imobzi',
icon: 'file:imobzi.svg',
group: ['transform'],
version: 2,
description: 'Interagir com a API da Imobzi',
defaults: {
name: 'Imobzi',
},
inputs: ["main"],
outputs: ["main"],
credentials: [
{
name: 'imobziApi',
required: true,
},
],
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{ name: 'Account', value: 'account' },
{ name: 'Agenda', value: 'agenda' },
{ name: 'Contact', value: 'contact' },
{ name: 'Contrato', value: 'contrato' },
{ name: 'Documento', value: 'documento' },
{ name: 'Evento', value: 'evento' },
{ name: 'Financeiro', value: 'financeiro' },
{ name: 'Imovel', value: 'property' },
{ name: 'Integracao', value: 'integracao' },
{ name: 'Lead', value: 'lead' },
{ name: 'Locacao', value: 'locacao' },
{ name: 'Tarefa', value: 'tarefa' },
{ name: 'Usuario', value: 'usuario' },
],
default: 'lead',
},
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
options: [
{ name: 'Create', value: 'create', action: 'Create a new item' },
{ name: 'Delete', value: 'delete', action: 'Delete an item' },
{ name: 'Get', value: 'get', action: 'Get an item by ID' },
{ name: 'Get Many', value: 'getAll', action: 'Get many items' },
{ name: 'Update', value: 'update', action: 'Update an item' },
],
default: 'create',
},
{
displayName: 'Lead Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getLeads',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['lead'],
},
},
},
{
displayName: 'Property Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getProperties',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['property'],
},
},
},
{
displayName: 'Contact Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getContacts',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['contact'],
},
},
},
{
displayName: 'Contract Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getContracts',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['contrato'],
},
},
},
{
displayName: 'Financial Account Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getFinancialAccounts',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['financeiro'],
},
},
},
{
displayName: 'Rental Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getRentals',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['locacao'],
},
},
},
{
displayName: 'Document Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getDocuments',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['documento'],
},
},
},
{
displayName: 'Task Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTasks',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['tarefa'],
},
},
},
{
displayName: 'Agenda Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getAgendas',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['agenda'],
},
},
},
{
displayName: 'Event Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getEvents',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['evento'],
},
},
},
{
displayName: 'Integration Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getIntegrations',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['integracao'],
},
},
},
{
displayName: 'User Name or ID',
name: 'id',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getUsers',
},
required: true,
default: '',
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
displayOptions: {
show: {
operation: ['get', 'update', 'delete'],
resource: ['usuario'],
},
},
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['lead'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getLeadFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['property'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getPropertyFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['contact'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getContactFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['contrato'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getContractFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['financeiro'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getFinancialAccountFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['locacao'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getRentalFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['documento'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getDocumentFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['tarefa'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field',
type: 'options',
typeOptions: { loadOptionsMethod: 'getTaskFields' },
default: '',
description: 'Campo para filtrar. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
},
{
displayName: 'Operador',
name: 'operator',
type: 'options',
options: [
{ name: 'Começa Com', value: 'starts_with' },
{ name: 'Contém', value: 'contains' },
{ name: 'Diferente', value: 'neq' },
{ name: 'Igual', value: 'eq' },
{ name: 'Maior Ou Igual', value: 'gte' },
{ name: 'Maior Que', value: 'gt' },
{ name: 'Menor Ou Igual', value: 'lte' },
{ name: 'Menor Que', value: 'lt' },
{ name: 'Não Contém', value: 'not_contains' },
{ name: 'Termina Com', value: 'ends_with' },
],
default: 'eq',
description: 'Operador de comparação',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
description: 'Valor para comparar',
},
],
},
],
},
{
displayName: 'Filtros',
name: 'filters',
type: 'fixedCollection',
typeOptions: { multipleValues: true },
placeholder: 'Adicionar filtro',
default: {},
displayOptions: {
show: {
resource: ['agenda'],
operation: ['getAll'],
},
},
options: [
{
name: 'filter',
displayName: 'Condição',
values: [
{
displayName: 'Campo Name or ID',
name: 'field