Add user group resource to Slack Node (#2405)

This commit is contained in:
Ricardo Espinoza
2021-11-03 20:55:04 -04:00
committed by GitHub
parent 0f9edd666d
commit 3971e30aff
4 changed files with 491 additions and 5 deletions

View File

@@ -41,6 +41,11 @@ import {
reactionOperations,
} from './ReactionDescription';
import {
userGroupFields,
userGroupOperations,
} from './UserGroupDescription';
import {
userFields,
userOperations,
@@ -191,6 +196,10 @@ export class Slack implements INodeType {
name: 'User',
value: 'user',
},
{
name: 'User Group',
value: 'userGroup',
},
{
name: 'User Profile',
value: 'userProfile',
@@ -212,6 +221,8 @@ export class Slack implements INodeType {
...reactionFields,
...userOperations,
...userFields,
...userGroupOperations,
...userGroupFields,
...userProfileOperations,
...userProfileFields,
],
@@ -295,13 +306,14 @@ export class Slack implements INodeType {
try {
const response = await this.helpers.request(options);
if (!response.ok) {
return {
status: 'Error',
message: `${response.error}`,
};
}
} catch(err) {
} catch (err) {
return {
status: 'Error',
message: `${err.message}`,
@@ -414,10 +426,10 @@ export class Slack implements INodeType {
qs.inclusive = filters.inclusive as boolean;
}
if (filters.latest) {
qs.latest = new Date(filters.latest as string).getTime()/1000;
qs.latest = new Date(filters.latest as string).getTime() / 1000;
}
if (filters.oldest) {
qs.oldest = new Date(filters.oldest as string).getTime()/1000;
qs.oldest = new Date(filters.oldest as string).getTime() / 1000;
}
if (returnAll === true) {
responseData = await slackApiRequestAllItems.call(this, 'messages', 'GET', '/conversations.history', {}, qs);
@@ -508,10 +520,10 @@ export class Slack implements INodeType {
qs.inclusive = filters.inclusive as boolean;
}
if (filters.latest) {
qs.latest = new Date(filters.latest as string).getTime()/1000;
qs.latest = new Date(filters.latest as string).getTime() / 1000;
}
if (filters.oldest) {
qs.oldest = new Date(filters.oldest as string).getTime()/1000;
qs.oldest = new Date(filters.oldest as string).getTime() / 1000;
}
if (returnAll === true) {
responseData = await slackApiRequestAllItems.call(this, 'messages', 'GET', '/conversations.replies', {}, qs);
@@ -1036,6 +1048,94 @@ export class Slack implements INodeType {
responseData = await slackApiRequest.call(this, 'GET', '/users.getPresence', {}, qs);
}
}
if (resource === 'userGroup') {
//https://api.slack.com/methods/usergroups.create
if (operation === 'create') {
const name = this.getNodeParameter('name', i) as string;
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
const body: IDataObject = {
name,
};
Object.assign(body, additionalFields);
responseData = await slackApiRequest.call(this, 'POST', '/usergroups.create', body, qs);
responseData = responseData.usergroup;
}
//https://api.slack.com/methods/usergroups.enable
if (operation === 'enable') {
const userGroupId = this.getNodeParameter('userGroupId', i) as string;
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
const body: IDataObject = {
usergroup: userGroupId,
};
Object.assign(body, additionalFields);
responseData = await slackApiRequest.call(this, 'POST', '/usergroups.enable', body, qs);
responseData = responseData.usergroup;
}
//https://api.slack.com/methods/usergroups.disable
if (operation === 'disable') {
const userGroupId = this.getNodeParameter('userGroupId', i) as string;
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
const body: IDataObject = {
usergroup: userGroupId,
};
Object.assign(body, additionalFields);
responseData = await slackApiRequest.call(this, 'POST', '/usergroups.disable', body, qs);
responseData = responseData.usergroup;
}
//https://api.slack.com/methods/usergroups.list
if (operation === 'getAll') {
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
const qs: IDataObject = {};
Object.assign(qs, additionalFields);
responseData = await slackApiRequest.call(this, 'GET', '/usergroups.list', {}, qs);
responseData = responseData.usergroups;
if (returnAll === false) {
const limit = this.getNodeParameter('limit', i) as number;
responseData = responseData.slice(0, limit);
}
}
//https://api.slack.com/methods/usergroups.update
if (operation === 'update') {
const userGroupId = this.getNodeParameter('userGroupId', i) as string;
const updateFields = this.getNodeParameter('updateFields', i) as IDataObject;
const body: IDataObject = {
usergroup: userGroupId,
};
Object.assign(body, updateFields);
responseData = await slackApiRequest.call(this, 'POST', '/usergroups.update', body, qs);
responseData = responseData.usergroup;
}
}
if (resource === 'userProfile') {
//https://api.slack.com/methods/users.profile.set
if (operation === 'update') {