@@ -5,14 +5,15 @@ const logsQuery = require("../models/logs");
5
5
const imageService = require ( "../services/imageService" ) ;
6
6
const { profileDiffStatus } = require ( "../constants/profileDiff" ) ;
7
7
const { logType } = require ( "../constants/logs" ) ;
8
- const { fetch } = require ( "../utils/fetch" ) ;
8
+
9
9
const logger = require ( "../utils/logger" ) ;
10
10
const obfuscate = require ( "../utils/obfuscate" ) ;
11
- const { getPaginationLink, getUsernamesFromPRs } = require ( "../utils/users" ) ;
11
+ const { getPaginationLink, getUsernamesFromPRs, mapDiscordMembersDataAndSyncRole } = require ( "../utils/users" ) ;
12
12
const { getQualifiers } = require ( "../utils/helper" ) ;
13
13
const { SOMETHING_WENT_WRONG , INTERNAL_SERVER_ERROR } = require ( "../constants/errorMessages" ) ;
14
14
const { getFilteredPRsOrIssues } = require ( "../utils/pullRequests" ) ;
15
15
const { IN_DISCORD } = require ( "../constants/roles" ) ;
16
+ const jwt = require ( "jsonwebtoken" ) ;
16
17
17
18
const verifyUser = async ( req , res ) => {
18
19
const userId = req . userData . id ;
@@ -25,7 +26,11 @@ const verifyUser = async (req, res) => {
25
26
logger . error ( `Error while verifying user: ${ error } ` ) ;
26
27
return res . boom . serverUnavailable ( SOMETHING_WENT_WRONG ) ;
27
28
}
28
- fetch ( process . env . IDENTITY_SERVICE_URL , "POST" , null , { userId } , { "Content-Type" : "application/json" } ) ;
29
+ fetch ( process . env . IDENTITY_SERVICE_URL , {
30
+ method : "POST" ,
31
+ body : { userId } ,
32
+ headers : { "Content-Type" : "application/json" } ,
33
+ } ) ;
29
34
return res . json ( {
30
35
message : "Your request has been queued successfully" ,
31
36
} ) ;
@@ -108,7 +113,6 @@ const getUsers = async (req, res) => {
108
113
*/
109
114
110
115
const getUser = async ( req , res ) => {
111
- console . log ( req . params . username ) ;
112
116
try {
113
117
const result = await userQuery . fetchUser ( { username : req . params . username } ) ;
114
118
const { phone, email, ...user } = result . user ;
@@ -463,23 +467,49 @@ const filterUsers = async (req, res) => {
463
467
return res . boom . serverUnavailable ( "Something went wrong please contact admin" ) ;
464
468
}
465
469
} ;
470
+ const DISCORD_BASE_URL = "https://89d4-49-36-233-201.ngrok.io" ;
471
+ const syncInDiscordRole = async ( req , res ) => {
472
+ try {
473
+ const authToken = jwt . sign ( { } , config . get ( "botToken.botPrivateKey" ) , {
474
+ algorithm : "RS256" ,
475
+ } ) ;
476
+ // console.log(authToken);
477
+ const response = await fetch ( `${ DISCORD_BASE_URL } /discord-members` , {
478
+ headers : {
479
+ "Content-Type" : "application/json" ,
480
+ Authorization : `Bearer ${ authToken } ` ,
481
+ } ,
482
+ } ) ;
483
+ const discordMembers = await response . json ( ) ;
466
484
467
- // const syncInDiscordRole = async (req, res) => {
468
- // try {
469
- // } catch (error) {
470
- // logger.error(`Error while fetching all users: ${error}`);
471
- // return res.boom.serverUnavailable("Something went wrong please contact admin");
472
- // }
473
- // };
485
+ const allUsers = await userQuery . getAllUsers ( ) ;
486
+ mapDiscordMembersDataAndSyncRole ( allUsers , discordMembers ) ;
487
+
488
+ return res . json ( { message : "Synced with discord members " } ) ;
489
+ } catch ( error ) {
490
+ logger . error ( `Error while fetching all users: ${ error } ` ) ;
491
+ return res . boom . serverUnavailable ( "Something went wrong please contact admin" ) ;
492
+ }
493
+ } ;
494
+
495
+ const fetchVerifiedUsers = async ( req , res ) => {
496
+ try {
497
+ const verifiedUsers = await userQuery . fetchUsersWhereFieldNotNull ( "discordId" ) ;
498
+ return res . json ( verifiedUsers ) ;
499
+ } catch ( error ) {
500
+ logger . error ( `Error while fetching all users: ${ error } ` ) ;
501
+ return res . boom . serverUnavailable ( "Something went wrong please contact admin" ) ;
502
+ }
503
+ } ;
474
504
475
505
const fetchInDiscordUsers = async ( req , res ) => {
476
506
try {
477
- const allUsers = await userQuery . fetchUsersWithRole ( IN_DISCORD ) ;
507
+ const usersInDiscord = await userQuery . fetchUsersWithRole ( IN_DISCORD ) ;
478
508
479
509
return res . json ( {
480
510
message : "Users found successfully!" ,
481
- users : allUsers ,
482
- count : allUsers . length ,
511
+ users : usersInDiscord ,
512
+ count : usersInDiscord . length ,
483
513
} ) ;
484
514
} catch ( error ) {
485
515
logger . error ( `Error while fetching all users: ${ error } ` ) ;
@@ -507,4 +537,6 @@ module.exports = {
507
537
getUserSkills,
508
538
filterUsers,
509
539
fetchInDiscordUsers,
540
+ syncInDiscordRole,
541
+ fetchVerifiedUsers,
510
542
} ;
0 commit comments