Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: ✨ add sevdesk node #2787

Closed
wants to merge 13 commits into from
Closed

WIP: ✨ add sevdesk node #2787

wants to merge 13 commits into from

Conversation

gitcedric
Copy link

@gitcedric gitcedric commented Feb 8, 2022

Description

This pull request adds the sevDesk node to the nodes-base.
Link to sevDesk: sevdesk.de
Link to Swagger: my.sevdesk.de/swaggerUI

Link to Community discussion: community.n8n.io/t/sevdesk-integration

Node Review Checklist

If you want to create a new node for a service - that's great, thank you! We recommend you take a look at the existing nodes to get an idea of how your code should look and work like.

There are several things to keep in mind when creating the node. To help you, we prepared a checklist that covers the requirements for creating nodes, from preparation to submission.

Make sure you tick the boxes below before submitting a node for review, as this will help our team review your PR easier and faster.

Preparation

  • Set up your editor for code formatting (indentation, new lines, linting). If you use Visual Studio Code, you can use the TSLint extension for linting.
  • Get credentials (e.g., Client ID, Client Secret, API key, user login, user password, website URL) for the service you are building a node for.

Development

  • Open a pull request as early as possible with WIP in the pull request title.
  • If you are creating a node requested by a community member, make sure to comment on the feature request in the community forum.
  • Ensure complementary operations to each resource (e.g., create, delete) have been added.
  • Ensure the node works with multiple items via one input.
  • Ensure the parameters have the correct type.
  • Mind the defaults: if the service has a default as true, keep it as true. Changing default values can break the existing workflows of the users.
  • Check if the node disposes of everything properly, in particular, if connections were properly closed.
  • Check your code using Nodelinter to ensure a clean lint before submitting your pull request

Testing

  • Test "create" and "update" operations with all fields/operations.
  • Test the continueOnFail option with a Function node. (For example, a Widget node has a GET operation that takes a widgetId and returns information on the widget. To test that the workflow continues on fail, set the Widget node to continue on fail, create a Function node, return a valid and an invalid widgetId, connect the Function node to Widget node, and run the workflow. The Widget node should show two items: one with information on the widget and another one with the error from having passed an invalid ID.)

Code formatting

  • Ensure the branch lints cleanly by running npm run lint.
  • Ensure the indentation is correct. Check this in the editorconfig.
  • Ensure there are no extra spaces. Check this in the editorconfig.
  • Code comment dividers inside if-branches.
  • Use "create/delete" verbs for operations, except for tags, where you should use "add/remove".

Errors and Outputs

  • Ensure empty API responses return { success: true }.
  • Ensure the error responses are handled and displayed correctly (e.g., malformed requests, requests with invalid credentials) and use the current format. You can check this by making failing requests to the API.
  • Check if the response can be simplified and add a simplify function (e.g., SecurityScorecard node).
  • Ensure the response from Create is consistent with Get.
  • Ensure the response from Get All is consistent with Get.

Presentation

  • Ensure the primary menu contains only required parameters.
  • Ensure a JSON object is not shown in a single column in Table view.
  • Make sure all GetAll operations have the fields return and limit.
  • Ensure the property subtitle is set.
  • Make sure the pagination (if any) is working correctly. Set Limit 1.

Writing

  • Ensure all descriptions are correct and end with a period.
  • Ensure that most descriptions exist, excluding redundant ones.
  • Ensure IDs in displayNames are capitalized (i.e.: "IDs", not "ids" or "Ids").
  • Ensure that IDs, if multiple, have descriptive qualifiers.
  • Ensure the name property in description in the node class is written in camelCase.
  • Ensure the file name and the Class name are identical.

Branding

  • Ensure the name of the service is written correctly (e.g., "GitHub" not "Github"). If the node is a trigger node, ensure it is named as such, by adding "Trigger" after the service name (e.g., "Trello Trigger").
  • Ensure the logo is either a PNG or SVG, ideally the latter. Vecta is a good website to find SVGs of different applications.
  • If the logo is an SVG, ensure the canvas is a perfect square. If the logo is PNG, ensure it is 60x60 pixels and compressed.
  • Ensure the border color of the node matches the branding of the service.

Nice-to-haves (optional)

  • Add handler for continueOnFail. This feature is included in some of the newest nodes (e.g Lemlist node) to continue the workflow even if the node's execution fails.
  • Remove required: false and description: '' in the node descriptions (e.g., Lemlist node).
  • At call site, specify first body and then qs.
  • At call site, prepend the endpoint with slash / (e.g., "/campaign").

@CLAassistant
Copy link

CLAassistant commented Feb 8, 2022

CLA assistant check
All committers have signed the CLA.

@Joffcom Joffcom added community Authored by a community member node/new Creation of an entirely new node labels Feb 9, 2022
@Joffcom
Copy link
Member

Joffcom commented Sep 9, 2022

Hey @gitcedric,

Thanks for the contribution, We have now created a Community Node Repository which is our preferred method for new node submissions.

Once a node has been published to the Community Node Repository users will be able to install the node from their n8n interface and will be able to use your node quicker, You will also be able to update the node as needed without needing to wait for the review process.

In the future we may reach out to you about including your node in our main release, But for now I am going to close this PR.

You can find more information in the links below, If you have any questions about this or need any help let us know.

Building Community Nodes: https://docs.n8n.io/integrations/community-nodes/build-community-nodes/
Submitting Community Nodes: https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/
Published Nodes: https://www.npmjs.com/search?q=keywords:n8n-community-node-package

@Joffcom Joffcom closed this Sep 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community Authored by a community member node/new Creation of an entirely new node
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants