website-backend icon indicating copy to clipboard operation
website-backend copied to clipboard

Sync User Profile Image on Discord and RealDevSquad V1 [RFC]

Open ivinayakg opened this issue 2 years ago • 0 comments

Brief

  • Right now, any user can change their profile picture on RealDevSquad or Discord, leading to inconsistency between the profile images on different profiles.
  • The System is already built #1094, this task is about sharpening the edges and activating this behind the feature flag.
  • Also added a new key status, to the photo-verification object which can have the values of ACCEPTED, PENDING, and REJECTED, which will help in simplifying the querying of the objects based on their status. note - the status will turn to ACCEPTED only when both the profile.approved and discord.profile is approved.

User Flows

  1. When a user updates their profile image from the my-site.
    • Backend API, to create a PHOTO_VERIFICATION, which will store the previous as well as the requested changes.
    • Backend API, to approve PHOTO_VERIFICATION only by SUPERUSER and then make the user profile changes.
    • Show all PHOTO_VERIFICATION on dashboard-site.
      • Will show current profile photo, new profile photo as well as the current discord profile photo.
      • Three options Approve, Reject & Refresh Discord Avatar

API Docs

  • /discord-actions/avatar/update/:discordId, this API will be responsible for updating the discord avatar URL in a PENDING status photo-verification object. Only for SUPERUSER.
  • /picture/all, this API will be responsible for querying all the current PENDING status photo-verification objects back. It can also accept username as a query parameter to filter. Only for SUPERUSER
  • /picture/:userId, will be responsible for querying all the current PENDING status photo-verification objects back for the userId provided. SUPERUSER can run this for any userId, while other users can only run for their own userId.

Dashboard

  • A basic UI for SUPERUSER to interact with photo-verification objects. Giving the user the ability to perform all of the above actions and also more in the future.

ivinayakg avatar Feb 24 '24 20:02 ivinayakg