Skip to content

Sync shouldHaveRole in db #166

Description

@Marchand-Nicolas

Description 📹

Modify refreshDiscordMember in utils\discord\refreshRoles.ts to sync a new database document that tracks role assignment logic. The document should include discordMemberId, discordServerConfigId, shouldHaveRole, and date (timestamp of last change). If shouldHaveRole doesn't change, the date field should remain the same. The document must be unique for each discordMemberId and discordServerConfigId combination, requiring the creation of a new table using TypeORM.

Proposed Actions 🛠️

Here’s a checklist of actions to follow for resolving this issue:

  1. Fork and Create Branch:
    Fork the repository and create a new branch using the issue number:
   git checkout -b fix-[issue-number]
  1. Implement Changes:
  • Create a new TypeORM entity named DiscordRoleSyncStatus with fields:
    • id (primary key)
    • discordMemberId
    • discordServerConfigId
    • shouldHaveRole
    • date
    • Add a unique constraint on discordMemberId + discordServerConfigId
  • Create a corresponding migration to add the new table
  • Modify refreshDiscordMember:
    • After computing shouldHaveRole, upsert a document in DiscordRoleSyncStatus
    • Only update date if shouldHaveRole value has changed
    • Ensure existing records are fetched before inserting to compare the previous shouldHaveRole value
    • Add error handling and logging if needed
  1. Run Tests and Commit Changes:
    Make sure your changes don't break existing functionality and commit with a clear message:
   git commit -m "Fix: Sync DiscordRoleSyncStatus in refreshDiscordMember function"

Required 📋

To keep our workflow smooth, please make sure you follow these guidelines:

  • Assignment: Don't create a pull request if you weren’t assigned to this issue.
  • Timeframe: Complete the task within 3 business days.
  • Closing the Issue: In your PR description, close the issue by writing Close #[issue_id].
  • Review Process:
    • Once you've submitted your PR, change the label to "ready for review".
    • If changes are requested, address them and then update the label back to "ready for review" once done.
  • Testing: Test your PR locally before pushing, and verify that tests and build are working after pushing.

Thank you for your contribution 🙏

⚠️ WARNING: Failure to follow the requirements above may result in being added to the OnlyDust blacklist, affecting your ability to receive future rewards.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgood first issueGood for newcomersonlydust-waveContribute to awesome OSS repos during OnlyDust's open source weekopen for contributionAn issue that is available for an Only Dust contribution

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions