Giveth / DeVouch-BE

DeVouch - Decentralized Vouching via Attestations
GNU General Public License v3.0
22 stars 2 forks source link

Add fetching project #50

Closed MohammadPCh closed 1 month ago

MohammadPCh commented 1 month ago

Summary by CodeRabbit

coderabbitai[bot] commented 1 month ago

Walkthrough

This update brings significant enhancements to the project management system, including the addition of slug and image fields to the Project type in the database and GraphQL schema. It also introduces new functionalities for importing and processing project data from the Giveth platform. Helper functions for database management and GraphQL requests are included to streamline data handling, with the main application now seamlessly integrating these changes by calling the import function.

Changes

File(s) Change Summary
db/migrations/1716207083370-Data.js Added migration to update the project table with slug and image fields.
schema.graphql Updated Project type to include slug and image fields.
src/features/import-projects/index.ts Introduced functions for updating/creating projects, processing batches, and importing projects.
src/features/import-projects/service.ts Added functions to fetch Giveth projects in batches and all projects.
src/features/import-projects/type.ts Introduced GivethProjectInfo type with fields id, title, descriptionSummary, slug, image.
src/helpers/db.ts Added functions to manage data source and create an entity manager using TypeORM.
src/helpers/request.ts Introduced graphQLRequest function for sending GraphQL queries.
src/main.ts Imported and called the importProjects function from the import-projects feature.
src/model/generated/project.model.ts Added slug and image properties to the Project class.
src/features/import-projects/standalone.ts Introduced standalone.ts file executing the task function within the import-projects feature.
.env.template Added GIVETH_API_URL configuration variable with a specific value.
.github/workflows/pipeline-develop.yml Updated Docker-related commands in the workflow file.
package.json Added dependencies for node-cron and @types/node-cron.
src/features/import-projects/config.ts Introduced CRON_SCHEDULE constant set to "0 0 * * *" in UTC time.
src/features/import-projects/giveth/constants.ts Added GIVETH_API_URL constant with a default URL if not provided via environment variable.
src/features/import-projects/giveth/helpers.ts Added functions for updating/creating projects based on Giveth project info.
src/features/import-projects/giveth/service.ts Introduced functions to fetch Giveth projects using GraphQL requests.
src/features/import-projects/giveth/type.ts Defined GivethProjectInfo type with properties for Giveth project information.

In the code, new fields take flight, slug and image shine bright. Giveth projects now import with grace, Enhancing our data's embrace. With TypeORM and GraphQL in sync, Our projects evolve in a blink. 🐇✨


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 - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `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 generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@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.` 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 as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration 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](https://docs.coderabbit.ai/guides/configure-coderabbit) 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](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.