Skip to content

Commit 7216a8d

Browse files
Review fixes
1 parent 018f8c0 commit 7216a8d

20 files changed

Lines changed: 480 additions & 897 deletions

.github/workflows/merge-main.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ jobs:
4545
needs: [linting, build]
4646
runs-on: ubuntu-latest
4747
if: always() && needs.linting.result == 'success' && needs.build.result == 'success'
48+
permissions:
49+
contents: read
50+
id-token: write
4851

4952
steps:
5053
- name: Checkout code
@@ -77,6 +80,6 @@ jobs:
7780
7881
- name: Publish to npm
7982
if: steps.version-check.outputs.should_publish == 'true'
80-
run: npm publish
83+
run: npm publish --provenance
8184
env:
8285
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

credentials/LinkedApi.credentials.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
export class LinkedApi implements ICredentialType {
99
name = 'linkedApi';
1010
displayName = 'Linked API';
11+
icon = 'file:linked-api-light.svg' as const;
1112
documentationUrl = 'https://linkedapi.io/integrations/n8n/creating-credential/';
1213

1314
properties: INodeProperties[] = [

credentials/linked-api-light.svg

Lines changed: 1 addition & 0 deletions
Loading

nodes/LinkedApi/LinkedApi.node.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import type {
44
INodeType,
55
INodeTypeDescription,
66
} from 'n8n-workflow';
7-
import { NodeConnectionType, NodeOperationError } from 'n8n-workflow';
87
import {
98
availableAdminOperations,
109
availableOtherOperations,
@@ -113,8 +112,8 @@ export class LinkedApi implements INodeType {
113112
defaults: {
114113
name: 'Linked API',
115114
},
116-
inputs: [NodeConnectionType.Main],
117-
outputs: [NodeConnectionType.Main],
115+
inputs: ['main'],
116+
outputs: ['main'],
118117
usableAsTool: true,
119118
hints: [
120119
{
@@ -188,18 +187,13 @@ export class LinkedApi implements INodeType {
188187

189188
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
190189
const operation = this.getNodeParameter('operation', 0) as string;
191-
const credentials = await this.getCredentials('linkedApi');
192-
193-
if (credentials === undefined) {
194-
throw new NodeOperationError(this.getNode(), 'No credentials got returned!');
195-
}
196190

197191
const items = this.getInputData();
198192
const returnData: INodeExecutionData[] = [];
199193

200194
for (let i = 0; i < items.length; i++) {
201195
try {
202-
const responseData = await operations[operation].execute(this);
196+
const responseData = await operations[operation].execute(this, i);
203197
if (Array.isArray(responseData)) {
204198
for (const entry of responseData) {
205199
returnData.push({ json: entry, pairedItem: { item: i } });

nodes/LinkedApi/operations/admin/AdminSetLimits.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,13 @@ export class AdminSetLimits extends AdminLinkedApiOperation {
4141
throw new NodeOperationError(
4242
context.getNode(),
4343
`Invalid JSON format for limits: ${limitsString}`,
44+
{ itemIndex: this.itemIndex },
4445
);
4546
}
4647
if (!Array.isArray(limits)) {
47-
throw new NodeOperationError(context.getNode(), 'Limits must be a JSON array');
48+
throw new NodeOperationError(context.getNode(), 'Limits must be a JSON array', {
49+
itemIndex: this.itemIndex,
50+
});
4851
}
4952
return {
5053
accountId: this.stringParameter(context, 'accountId'),

nodes/LinkedApi/operations/webhook/CommentOnPost.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class CommentOnPost extends StandardLinkedApiOperation {
2828
];
2929

3030
public body(context: IExecuteFunctions): Record<string, any> {
31-
const additionalParameters = context.getNodeParameter('additionalParameters', 0, {}) as {
31+
const additionalParameters = context.getNodeParameter('additionalParameters', this.itemIndex, {}) as {
3232
postCompanyUrl?: string;
3333
};
3434

nodes/LinkedApi/operations/webhook/CreatePost.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ export class CreatePost extends StandardLinkedApiOperation {
9494

9595
public body(context: IExecuteFunctions): Record<string, any> {
9696
const text = this.stringParameter(context, 'postText');
97-
const additionalParameters = context.getNodeParameter('additionalParameters', 0, {}) as {
97+
const additionalParameters = context.getNodeParameter('additionalParameters', this.itemIndex, {}) as {
9898
postCompanyUrl?: string;
9999
};
100-
const attachmentsData = context.getNodeParameter('attachments', 0, {}) as {
100+
const attachmentsData = context.getNodeParameter('attachments', this.itemIndex, {}) as {
101101
attachment?: Array<{ type: string; url: string; name?: string }>;
102102
};
103103

nodes/LinkedApi/operations/webhook/FetchCompany.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export class FetchCompany extends StandardLinkedApiOperation {
4949
];
5050

5151
public body(context: IExecuteFunctions): Record<string, any> {
52-
const dataToRetrieve = context.getNodeParameter('dataToRetrieve', 0, []) as string[];
52+
const dataToRetrieve = context.getNodeParameter('dataToRetrieve', this.itemIndex, []) as string[];
5353
const retrieveEmployees = dataToRetrieve.includes('employees');
5454
const retrieveDMs = dataToRetrieve.includes('decisionMakers');
5555
const retrievePosts = dataToRetrieve.includes('posts');

nodes/LinkedApi/operations/webhook/FetchPerson.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export class FetchPerson extends StandardLinkedApiOperation {
6565
}),
6666
];
6767
public body(context: IExecuteFunctions): Record<string, any> {
68-
const dataToRetrieve = context.getNodeParameter('dataToRetrieve', 0, []) as string[];
68+
const dataToRetrieve = context.getNodeParameter('dataToRetrieve', this.itemIndex, []) as string[];
6969
const retrieveExperience = dataToRetrieve.includes('experience');
7070
const retrieveEducation = dataToRetrieve.includes('education');
7171
const retrieveSkills = dataToRetrieve.includes('skills');

nodes/LinkedApi/operations/webhook/FetchPost.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export class FetchPost extends StandardLinkedApiOperation {
6868
];
6969

7070
public body(context: IExecuteFunctions): Record<string, any> {
71-
const dataToRetrieve = context.getNodeParameter('dataToRetrieve', 0, []) as string[];
71+
const dataToRetrieve = context.getNodeParameter('dataToRetrieve', this.itemIndex, []) as string[];
7272
const retrieveComments = dataToRetrieve.includes('comments');
7373
const retrieveReactions = dataToRetrieve.includes('reactions');
7474

0 commit comments

Comments
 (0)