mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
Add MondayCom options for changing column values
This commit is contained in:
parent
13d409554e
commit
d2e738b5c7
|
@ -15,6 +15,16 @@ export const boardItemOperations = [
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
options: [
|
options: [
|
||||||
|
{
|
||||||
|
name: 'Change Column Value',
|
||||||
|
value: 'changeColumnValue',
|
||||||
|
description: 'Change a column value for a board item',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Change Multiple Column Values',
|
||||||
|
value: 'changeMultipleColumnValues',
|
||||||
|
description: 'Change multiple column values for a board item',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'Create',
|
name: 'Create',
|
||||||
value: 'create',
|
value: 'create',
|
||||||
|
@ -377,4 +387,151 @@ export const boardItemFields = [
|
||||||
default: 50,
|
default: 50,
|
||||||
description: 'How many results to return.',
|
description: 'How many results to return.',
|
||||||
},
|
},
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
/* boardItem:changeColumnValue */
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
{
|
||||||
|
displayName: 'Board ID',
|
||||||
|
name: 'boardId',
|
||||||
|
type: 'options',
|
||||||
|
typeOptions: {
|
||||||
|
loadOptionsMethod: 'getBoards',
|
||||||
|
},
|
||||||
|
default: '',
|
||||||
|
required: true,
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
resource: [
|
||||||
|
'boardItem',
|
||||||
|
],
|
||||||
|
operation: [
|
||||||
|
'changeColumnValue',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
description: 'The unique identifier of the board.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Item ID',
|
||||||
|
name: 'itemId',
|
||||||
|
type: 'string',
|
||||||
|
default: '',
|
||||||
|
required: true,
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
resource: [
|
||||||
|
'boardItem',
|
||||||
|
],
|
||||||
|
operation: [
|
||||||
|
'changeColumnValue',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
description: `Item's ID`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Column ID',
|
||||||
|
name: 'columnId',
|
||||||
|
type: 'options',
|
||||||
|
typeOptions: {
|
||||||
|
loadOptionsMethod: 'getColumns',
|
||||||
|
loadOptionsDependsOn: [
|
||||||
|
'boardId'
|
||||||
|
],
|
||||||
|
},
|
||||||
|
default: '',
|
||||||
|
required: true,
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
resource: [
|
||||||
|
'boardItem',
|
||||||
|
],
|
||||||
|
operation: [
|
||||||
|
'changeColumnValue',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
description: `The column's unique identifier.`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Value',
|
||||||
|
name: 'value',
|
||||||
|
type: 'json',
|
||||||
|
required: true,
|
||||||
|
default: '',
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
resource: [
|
||||||
|
'boardItem',
|
||||||
|
],
|
||||||
|
operation: [
|
||||||
|
'changeColumnValue',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
description: 'The column value in JSON format.',
|
||||||
|
},
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
/* boardItem:changeMultipleColumnValues */
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
{
|
||||||
|
displayName: 'Board ID',
|
||||||
|
name: 'boardId',
|
||||||
|
type: 'options',
|
||||||
|
typeOptions: {
|
||||||
|
loadOptionsMethod: 'getBoards',
|
||||||
|
},
|
||||||
|
default: '',
|
||||||
|
required: true,
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
resource: [
|
||||||
|
'boardItem',
|
||||||
|
],
|
||||||
|
operation: [
|
||||||
|
'changeMultipleColumnValues',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
description: 'The unique identifier of the board.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Item ID',
|
||||||
|
name: 'itemId',
|
||||||
|
type: 'string',
|
||||||
|
default: '',
|
||||||
|
required: true,
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
resource: [
|
||||||
|
'boardItem',
|
||||||
|
],
|
||||||
|
operation: [
|
||||||
|
'changeMultipleColumnValues',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
description: `Item's ID`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Column Values',
|
||||||
|
name: 'columnValues',
|
||||||
|
type: 'json',
|
||||||
|
required: true,
|
||||||
|
default: '',
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
resource: [
|
||||||
|
'boardItem',
|
||||||
|
],
|
||||||
|
operation: [
|
||||||
|
'changeMultipleColumnValues',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
description: 'The column fields and values in JSON format.',
|
||||||
|
typeOptions: {
|
||||||
|
alwaysOpenEditWindow: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
] as INodeProperties[];
|
] as INodeProperties[];
|
||||||
|
|
|
@ -487,6 +487,64 @@ export class MondayCom implements INodeType {
|
||||||
responseData = await mondayComApiRequest.call(this, body);
|
responseData = await mondayComApiRequest.call(this, body);
|
||||||
responseData = responseData.data.create_item;
|
responseData = responseData.data.create_item;
|
||||||
}
|
}
|
||||||
|
if (operation === 'changeColumnValue') {
|
||||||
|
const boardId = parseInt(this.getNodeParameter('boardId', i) as string, 10);
|
||||||
|
const itemId = parseInt((this.getNodeParameter('itemId', i) as string), 10);
|
||||||
|
const columnId = this.getNodeParameter('columnId', i) as string;
|
||||||
|
const value = this.getNodeParameter('value', i) as string;
|
||||||
|
|
||||||
|
const body: IGraphqlBody = {
|
||||||
|
query:
|
||||||
|
`mutation ($boardId: Int!, $itemId: Int!, $columnId: String!, $value: JSON!) {
|
||||||
|
change_column_value (board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}`,
|
||||||
|
variables: {
|
||||||
|
boardId,
|
||||||
|
itemId,
|
||||||
|
columnId,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
JSON.parse(value);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error('Custom Values must be a valid JSON');
|
||||||
|
}
|
||||||
|
body.variables.value = JSON.stringify(JSON.parse(value));
|
||||||
|
|
||||||
|
responseData = await mondayComApiRequest.call(this, body);
|
||||||
|
responseData = responseData.data.change_column_value;
|
||||||
|
}
|
||||||
|
if (operation === 'changeMultipleColumnValues') {
|
||||||
|
const boardId = parseInt(this.getNodeParameter('boardId', i) as string, 10);
|
||||||
|
const itemId = parseInt((this.getNodeParameter('itemId', i) as string), 10);
|
||||||
|
const columnValues = this.getNodeParameter('columnValues', i) as string;
|
||||||
|
|
||||||
|
const body: IGraphqlBody = {
|
||||||
|
query:
|
||||||
|
`mutation ($boardId: Int!, $itemId: Int!, $columnValues: JSON!) {
|
||||||
|
change_multiple_column_values (board_id: $boardId, item_id: $itemId, column_values: $columnValues) {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}`,
|
||||||
|
variables: {
|
||||||
|
boardId,
|
||||||
|
itemId,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
JSON.parse(columnValues);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error('Custom Values must be a valid JSON');
|
||||||
|
}
|
||||||
|
body.variables.columnValues = JSON.stringify(JSON.parse(columnValues));
|
||||||
|
|
||||||
|
responseData = await mondayComApiRequest.call(this, body);
|
||||||
|
responseData = responseData.data.change_multiple_column_values;
|
||||||
|
}
|
||||||
if (operation === 'delete') {
|
if (operation === 'delete') {
|
||||||
const itemId = parseInt((this.getNodeParameter('itemId', i) as string), 10);
|
const itemId = parseInt((this.getNodeParameter('itemId', i) as string), 10);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue