🐛 Fix issue when filtering fields type select & multi_select on Notion Node (#1819)

Also, it adds a change to how the links are handled. Before, if a link were left blank, the node would error. Now, if the link is left blank, it gets ignored.
This commit is contained in:
Ricardo Espinoza 2021-05-24 17:45:58 -04:00 committed by GitHub
parent ce9951d877
commit 2a7a87eb4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 2 deletions

View file

@ -136,7 +136,7 @@ export function formatText(content: string) {
}
function getLink(text: { textLink: string, isLink: boolean }) {
if (text.isLink === true) {
if (text.isLink === true && text.textLink !== '') {
return {
link: {
url: text.textLink,
@ -270,10 +270,12 @@ function getPropertyKeyValue(value: any, type: string, timezone: string) {
};
break;
case 'date':
//&& value.dateStart !== 'Invalid date' && value.dateEnd !== 'Invalid date'
if (value.range === true) {
result = {
type: 'date', date: { start: moment.tz(value.dateStart, timezone).utc().format(), end: moment.tz(value.dateEnd, timezone).utc().format() },
};
//if (value.date !== 'Invalid date')
} else {
result = {
type: 'date', date: { start: moment.tz(value.date, timezone).utc().format(), end: null },

View file

@ -212,8 +212,11 @@ export class Notion implements INodeType {
async getPropertySelectValues(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const [name, type] = (this.getCurrentNodeParameter('&key') as string).split('|');
const databaseId = this.getCurrentNodeParameter('databaseId') as string;
const resource = this.getCurrentNodeParameter('resource') as string;
const operation = this.getCurrentNodeParameter('operation') as string;
const { properties } = await notionApiRequest.call(this, 'GET', `/databases/${databaseId}`);
return (properties[name][type].options).map((option: IDataObject) => ({ name: option.name, value: option.id }));
const useNames = (resource === 'databasePage' && operation === 'getAll');
return (properties[name][type].options).map((option: IDataObject) => ({ name: option.name, value: (['select', 'multi_select'].includes(type) && useNames) ? option.name : option.id }));
},
async getUsers(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const returnData: INodePropertyOptions[] = [];