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

refactor: added authorization to airtable integration and create a common actions file #1538

Merged
merged 1 commit into from
Nov 6, 2023

Conversation

Dhruwang
Copy link
Contributor

What does this PR do?

Fixes 1465

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Chore (refactoring code, technical debt, workflow improvements)
  • Enhancement (small improvements)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change adds a new database migration
  • This change requires a documentation update

How should this be tested?

  • Test A
  • Test B

Checklist

Required

  • Filled out the "How to test" section in this PR
  • Read How we Code at Formbricks
  • Self-reviewed my own code
  • Commented on my code in hard-to-understand bits
  • Ran pnpm build
  • Checked for warnings, there are none
  • Removed all console.logs
  • Merged the latest changes from main onto my branch with git pull origin main
  • My changes don't cause any responsiveness issues
  • First PR at Formbricks? Please sign the CLA! Without it we wont be able to merge it 🙏

Appreciated

  • If a UI change was made: Added a screen recording or screenshots to this PR
  • Updated the Formbricks Docs if changes were necessary

@vercel
Copy link

vercel bot commented Oct 31, 2023

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

2 Ignored Deployments
Name Status Preview Updated (UTC)
formbricks-cloud ⬜️ Ignored (Inspect) Oct 31, 2023 9:28am
formbricks-com ⬜️ Ignored (Inspect) Oct 31, 2023 9:28am

@github-actions
Copy link
Contributor

Thank you for following the naming conventions for pull request titles! 🙏

@review-agent-prime
Copy link
Contributor

The changes in this PR seem to be focused on refactoring the code to improve modularity and reusability. The actions related to integrations (create, update, delete) have been moved to a common file, which is a good practice. However, there are a few suggestions to improve the code:

  1. In the createOrUpdateIntegrationAction and deleteIntegrationAction functions, you are directly returning the result of the createOrUpdateIntegration and deleteIntegration functions. You can remove the await keyword and return the promise directly. This will make your code more efficient as it won't have to wait for the promise to resolve before returning.
export function createOrUpdateIntegrationAction(
  environmentId: string,
  integrationData: TIntegrationInput
) {
  return createOrUpdateIntegration(environmentId, integrationData);
}

export function deleteIntegrationAction(integrationId: string) {
  const session = getServerSession(authOptions);
  if (!session) throw new AuthorizationError("Not authorized");

  const isAuthorized = canUserAccessIntegration(session.user.id, integrationId);
  if (!isAuthorized) throw new AuthorizationError("Not authorized");

  return deleteIntegration(integrationId);
}
  1. In the AddIntegrationModal.tsx file, you are using useState to manage the tables state. However, it seems like you are only using setTables in the handleTable function. If tables is not used anywhere else, you might consider moving the useState call into the handleTable function to limit its scope.

  2. In the Home.tsx file, you are importing deleteIntegrationAction from the common actions file. Make sure that this function is correctly handling the deletion of Google Sheets integrations, as it was previously imported from the Google Sheets specific actions file.

  3. In the refreshSheetAction function, you are throwing an AuthorizationError if the user does not have access to the environment. It would be helpful to include the environmentId in the error message to make debugging easier.

if (!isAuthorized) throw new AuthorizationError(`Not authorized to access environment: ${environmentId}`);

Overall, the changes in this PR are a step in the right direction for improving the modularity and reusability of your code.

Copy link
Member

@mattinannt mattinannt left a comment

Choose a reason for hiding this comment

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

💪🙏

@mattinannt mattinannt self-assigned this Nov 6, 2023
@mattinannt mattinannt added this pull request to the merge queue Nov 6, 2023
Merged via the queue into main with commit 0c69f8a Nov 6, 2023
14 checks passed
@mattinannt mattinannt deleted the airtable_auth branch November 6, 2023 09:44
kevinkong91 added a commit to kevinkong91/formbricks that referenced this pull request Nov 7, 2023
* main: (42 commits)
  chore: add revert to oss-friends (formbricks#745)
  fix: pass authOptions to getServerSession in authLayout (formbricks#1584)
  fix: fixed URL example for "Create Survey" API endpoint is wrong formbricks#1555 (formbricks#1586)
  fix(docs): default account info docs changes (formbricks#1583)
  chore: Add docker packages to Github Packages on release (formbricks#1585)
  feat: avatar upload (formbricks#1546)
  fix: editor crashing (formbricks#1582)
  fix: Add scroll to the setting navbar  (formbricks#1398)
  are you sure modal missing fix:formbricks#1419 (formbricks#1485)
  fix: github linting issues (formbricks#1510)
  refactor: added authorization to airtable integration and create a common actions file (formbricks#1538)
  docs: add docs for airtable (formbricks#1541)
  fix: missing static generation store in revalidation due to pages dir (formbricks#1581)
  feat: Pagination for other values in multi choice (formbricks#1560)
  feat:  $199 pricing model for unlimited plans (formbricks#1564)
  fix: make pricing pages consistent (formbricks#1567)
  fix: openText issue (formbricks#1579)
  fix: avoid blocking the request if it does not have an associated ip (formbricks#1540)
  feat: Add Unkey to OSS Friends (formbricks#1574)
  feat: FOR-683 Role Switch (formbricks#1450)
  ...
kevinkong91 added a commit to kevinkong91/formbricks that referenced this pull request Nov 7, 2023
* main: (70 commits)
  chore: add revert to oss-friends (formbricks#745)
  fix: pass authOptions to getServerSession in authLayout (formbricks#1584)
  fix: fixed URL example for "Create Survey" API endpoint is wrong formbricks#1555 (formbricks#1586)
  fix(docs): default account info docs changes (formbricks#1583)
  chore: Add docker packages to Github Packages on release (formbricks#1585)
  feat: avatar upload (formbricks#1546)
  fix: editor crashing (formbricks#1582)
  fix: Add scroll to the setting navbar  (formbricks#1398)
  are you sure modal missing fix:formbricks#1419 (formbricks#1485)
  fix: github linting issues (formbricks#1510)
  refactor: added authorization to airtable integration and create a common actions file (formbricks#1538)
  docs: add docs for airtable (formbricks#1541)
  fix: missing static generation store in revalidation due to pages dir (formbricks#1581)
  feat: Pagination for other values in multi choice (formbricks#1560)
  feat:  $199 pricing model for unlimited plans (formbricks#1564)
  fix: make pricing pages consistent (formbricks#1567)
  fix: openText issue (formbricks#1579)
  fix: avoid blocking the request if it does not have an associated ip (formbricks#1540)
  feat: Add Unkey to OSS Friends (formbricks#1574)
  feat: FOR-683 Role Switch (formbricks#1450)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants