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

[Components] real_id - new action components #15662

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jcortes
Copy link
Collaborator

@jcortes jcortes commented Feb 19, 2025

WHY

Resolves #15622

Summary by CodeRabbit

  • New Features

    • Introduced actions to create, delete, and retrieve ID checks, enabling users to manage identity verifications using contact details and additional optional information.
    • Provides clear confirmation messages upon successful operations.
  • Chores

    • Updated the system version and dependencies for enhanced integration.
    • Improved API request handling for a more robust, streamlined experience.
    • Enhanced configuration options with new properties for initiating ID checks.

@jcortes jcortes added the action New Action Request label Feb 19, 2025
@jcortes jcortes self-assigned this Feb 19, 2025
Copy link

vercel bot commented Feb 19, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

3 Skipped Deployments
Name Status Preview Comments Updated (UTC)
docs-v2 ⬜️ Ignored (Inspect) Visit Preview Feb 21, 2025 2:44am
pipedream-docs ⬜️ Ignored (Inspect) Feb 21, 2025 2:44am
pipedream-docs-redirect-do-not-edit ⬜️ Ignored (Inspect) Feb 21, 2025 2:44am

Copy link
Contributor

coderabbitai bot commented Feb 19, 2025

Walkthrough

This pull request introduces three new action modules for handling ID checks—creation, deletion, and retrieval. Each module is defined with its own metadata, properties, and methods to perform specific API requests. In addition, the underlying real_id application has been enhanced with new properties and methods to streamline HTTP requests. The package version has been updated and a new dependency added to support these changes.

Changes

File(s) Change Summary
components/real_id/actions/.../create-id-check.mjs, .../delete-id-check.mjs, .../get-id-check.mjs Introduces new action modules for creating, deleting, and retrieving ID checks. Each module defines action metadata, required/optional properties, and methods to handle corresponding POST, DELETE, or GET API requests.
components/real_id/package.json Updates package version from 0.0.1 to 0.1.0 and adds a dependency on @pipedream/platform with version constraint ^3.0.3.
components/real_id/real_id.app.mjs Enhances the real_id app with new property definitions (email, phone, checkId) and adds methods (getUrl, getHeaders, _makeRequest, post, delete) to streamline API request management, replacing the previous authKeys method.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant ActionModule (Create/Get)
  participant RealIDApp
  participant API
  User->>ActionModule: Provide parameters (e.g., email/phone, etc.)
  ActionModule->>RealIDApp: Call post or GET method (/checks endpoint)
  RealIDApp->>API: Send HTTP request with payload
  API-->>RealIDApp: Return response
  RealIDApp-->>ActionModule: Deliver response
  ActionModule-->>User: Output summary message
Loading
sequenceDiagram
  participant User
  participant DeleteAction
  participant RealIDApp
  participant API
  User->>DeleteAction: Provide checkId for deletion
  DeleteAction->>RealIDApp: Call delete method (/checks/{checkId})
  RealIDApp->>API: Send DELETE request
  API-->>RealIDApp: Return response
  RealIDApp-->>DeleteAction: Deliver response
  DeleteAction-->>User: Output deletion summary
Loading

Possibly related PRs

Suggested reviewers

  • michelle0927

Poem

I'm a hopping rabbit, coding with delight,
New ID checks appear in the soft twilight.
Create, delete, retrieve—each action is so keen,
With APIs dancing like carrots, oh so green!
My burrow sings with code and cheer, a bug-free scene!
🐰 Happy leaps in every line of code so bright!

Warning

There were issues while running some tools. Please review the errors and either fix the tool’s configuration or disable the tool if it’s a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

components/real_id/actions/create-id-check/create-id-check.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at packageResolve (node:internal/modules/esm/resolve:839:9)
at moduleResolve (node:internal/modules/esm/resolve:908:18)
at defaultResolve (node:internal/modules/esm/resolve:1038:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:557:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:525:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
at ModuleJob._link (node:internal/modules/esm/module_job:126:49)

components/real_id/actions/get-id-check/get-id-check.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at packageResolve (node:internal/modules/esm/resolve:839:9)
at moduleResolve (node:internal/modules/esm/resolve:908:18)
at defaultResolve (node:internal/modules/esm/resolve:1038:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:557:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:525:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
at ModuleJob._link (node:internal/modules/esm/module_job:126:49)

components/real_id/actions/delete-id-check/delete-id-check.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at packageResolve (node:internal/modules/esm/resolve:839:9)
at moduleResolve (node:internal/modules/esm/resolve:908:18)
at defaultResolve (node:internal/modules/esm/resolve:1038:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:557:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:525:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
at ModuleJob._link (node:internal/modules/esm/module_job:126:49)

  • 1 others
✨ Finishing Touches
  • 📝 Generate Docstrings (Beta)

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@jcortes jcortes force-pushed the real-id-new-components branch from 23f0225 to 29ebe34 Compare February 19, 2025 01:13
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (6)
components/real_id/real_id.app.mjs (1)

26-35: Consider making the base URL configurable.

The base URL is currently hardcoded. Consider moving it to a constant or configuration to make it easier to update and maintain.

+const BASE_URL = "https://real-id.getverdict.com/api/v1";
+
 getUrl(path) {
-  return `https://real-id.getverdict.com/api/v1${path}`;
+  return `${BASE_URL}${path}`;
 }
components/real_id/actions/create-id-check/create-id-check.mjs (2)

11-16: Document the reason for eslint-disable.

Add a comment explaining why the eslint rules are disabled for the info prop.

-    // eslint-disable-next-line pipedream/props-label, pipedream/props-description
+    // eslint-disable-next-line pipedream/props-label, pipedream/props-description
+    // Info alert doesn't require label and description as it's not a user input

86-121: Add validation and enhance the success message.

Two suggestions for improvement:

  1. Add validation to ensure either email or phone is provided
  2. Include the created check ID in the success message
 async run({ $ }) {
   const {
     createIdCheck,
     email,
     phone,
     // ... other destructured props
   } = this;

+  if (!email && !phone) {
+    throw new Error("Either email or phone must be provided");
+  }

   const response = await createIdCheck({
     // ... request configuration
   });
-  $.export("$summary", "Successfully created ID check.");
+  $.export("$summary", `Successfully created ID check \`${response.check.id}\`.`);
   return response;
 }
components/real_id/actions/get-id-check/get-id-check.mjs (2)

25-32: Use consistent HTTP method approach.

For consistency with other modules, consider using a dedicated get method from the app instead of _makeRequest directly.

-    retrieveIdCheck({
-      checkId, ...args
-    } = {}) {
-      return this.app._makeRequest({
-        path: `/checks/${checkId}`,
-        ...args,
-      });
-    },
+    retrieveIdCheck({
+      checkId, ...args
+    } = {}) {
+      return this.app.get({
+        path: `/checks/${checkId}`,
+        ...args,
+      });
+    },

49-49: Enhance the success message.

Include the retrieved check ID in the success message for better context.

-    $.export("$summary", "Successfully retrieved ID check.");
+    $.export("$summary", `Successfully retrieved ID check \`${response.check.id}\`.`);
components/real_id/package.json (1)

18-18: Formatting Check: Maintain Consistency in JSON Structure.

A minor formatting update appears at the end of the JSON object. Please verify that the overall JSON structure adheres to our style guidelines.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ef33382 and 29ebe34.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (5)
  • components/real_id/actions/create-id-check/create-id-check.mjs (1 hunks)
  • components/real_id/actions/delete-id-check/delete-id-check.mjs (1 hunks)
  • components/real_id/actions/get-id-check/get-id-check.mjs (1 hunks)
  • components/real_id/package.json (2 hunks)
  • components/real_id/real_id.app.mjs (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Publish TypeScript components
🔇 Additional comments (10)
components/real_id/real_id.app.mjs (3)

1-24: LGTM! Well-structured prop definitions.

The prop definitions are clear, well-documented, and appropriately marked as optional where needed. The use of descriptive labels and helpful descriptions improves the user experience.


36-44: LGTM! Well-structured request method.

The _makeRequest method effectively centralizes request creation with good defaults and flexibility for customization.


45-56: LGTM! Clean HTTP method implementations.

The POST and DELETE methods are implemented cleanly and consistently using the centralized request method.

components/real_id/actions/create-id-check/create-id-check.mjs (1)

17-77: LGTM! Comprehensive and well-documented props.

The props are well-structured with clear labels, descriptions, and appropriate optional flags. The inclusion of e-commerce platform IDs and additional parameters provides good flexibility.

components/real_id/actions/get-id-check/get-id-check.mjs (1)

9-23: LGTM! Clear and well-documented props.

The props are well-structured with clear documentation, especially the explanation about photo URL expiration.

components/real_id/actions/delete-id-check/delete-id-check.mjs (2)

3-17: LGTM! Well-structured metadata and props.

The component is well-documented with appropriate props for the delete operation.


18-40: LGTM! Clean and consistent implementation.

The methods are well-implemented with good error handling and an informative success message.

components/real_id/package.json (3)

3-3: Version Update: Confirm Backward Compatibility.

The package version has been updated to "0.1.0", signifying a new release stage. Please ensure that any breaking changes or new features introduced by this update are thoroughly documented (e.g., in the project changelog) for all users.


12-14: Publish Configuration: Validate Public Distribution Settings.

The "publishConfig" block retains "access": "public", which is consistent with our distribution strategy. Confirm that public access remains appropriate with the new functionalities added in this release.


15-16: New Dependency Addition: Verify Compatibility and Impact.

A new dependency on "@pipedream/platform": "^3.0.3" has been introduced. Ensure that this version constraint aligns with our compatibility requirements and that the dependency is fully supported by the new action modules.

@jcortes jcortes force-pushed the real-id-new-components branch from 29ebe34 to 26fc535 Compare February 19, 2025 14:30
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
components/real_id/actions/create-id-check/create-id-check.mjs (1)

11-11: Document ESLint disable comment.

Please add a comment explaining why these ESLint rules are disabled.

-    // eslint-disable-next-line pipedream/props-label, pipedream/props-description
+    // Alert props don't require label and description as they are used for displaying messages
+    // eslint-disable-next-line pipedream/props-label, pipedream/props-description
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 29ebe34 and 26fc535.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (5)
  • components/real_id/actions/create-id-check/create-id-check.mjs (1 hunks)
  • components/real_id/actions/delete-id-check/delete-id-check.mjs (1 hunks)
  • components/real_id/actions/get-id-check/get-id-check.mjs (1 hunks)
  • components/real_id/package.json (2 hunks)
  • components/real_id/real_id.app.mjs (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • components/real_id/package.json
  • components/real_id/actions/get-id-check/get-id-check.mjs
  • components/real_id/actions/delete-id-check/delete-id-check.mjs
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Verify TypeScript components
  • GitHub Check: pnpm publish
  • GitHub Check: Publish TypeScript components
🔇 Additional comments (7)
components/real_id/real_id.app.mjs (4)

1-1: LGTM!

Using the platform's axios instance is a good practice.


6-24: LGTM!

The property definitions are well-structured with appropriate types, labels, and descriptions. The optional flags are correctly set for email and phone, allowing them to be used as alternatives.


26-35: LGTM!

The URL and headers construction methods are well-structured and reusable. They correctly handle API versioning and authentication.


36-56: LGTM!

The request methods are well-structured and follow DRY principles. The base _makeRequest method is properly reused by HTTP-specific wrapper methods.

components/real_id/actions/create-id-check/create-id-check.mjs (3)

6-6: Documentation link needs to be updated.

The documentation link appears to be invalid.


17-28: LGTM!

The email and phone props are correctly defined using the app's propDefinitions, with proper handling of their optional nature while ensuring at least one is provided.


29-77: LGTM!

The optional props are well-defined with appropriate types, labels, and descriptions. The case conversion between prop names and API fields is handled correctly in the run method.

michelle0927
michelle0927 previously approved these changes Feb 19, 2025
Copy link
Collaborator

@michelle0927 michelle0927 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Optional minor nitpick: For prop descriptions, it's preferred that we not use a period unless it's a complete sentence.

@jcortes jcortes force-pushed the real-id-new-components branch from f99fccd to e2da690 Compare February 21, 2025 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
action New Action Request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Components] real_id
2 participants