1
+ import { HackRPlayBadges } from "../../services/badges.js" ;
2
+ // import { sendMail } from "../../services/email/index.js";
1
3
import { submit } from "../../services/submit.js" ;
4
+ import {
5
+ GetAllParticipantIdeasMemberIdQuery ,
6
+ GetUserBadgeQuery ,
7
+ GetAllAuthorsIdQuery ,
8
+ GetAllCompletedIdeasIdQuery ,
9
+ GetAllWinnerUserIdQuery ,
10
+ InsertBadgeQuery ,
11
+ GetUserDetailsQuery ,
12
+ } from "./queries.js" ;
2
13
3
- const GetAllParticipantIdeasMemberId = ( ) => {
4
- return {
5
- display : "Get All Participants" ,
6
- name : "hackathon_ideas_members" ,
7
- function : "hackathon_ideas_members" ,
8
- return : [ "user_id" , "idea_id" ] ,
9
- } ;
10
- } ;
11
-
12
- const GetAllAuthorsId = ( ) => {
13
- return {
14
- display : "Get All Author" ,
15
- name : "hackathon_ideas" ,
16
- function : "hackathon_ideas" ,
17
- return : [ "id" , "owner" ] ,
18
- } ;
19
- } ;
20
-
21
- const GetAllCompletedIdeasId = ( ) => {
22
- return {
23
- display : "Get All Submissions" ,
24
- name : "hackathon_idea_submission" ,
25
- function : "hackathon_idea_submission" ,
26
- return : [ "idea_id" ] ,
27
- } ;
28
- } ;
29
-
30
- const GetAllWinnerUserId = ( ) => {
31
- return {
32
- display : "Get Winners" ,
33
- name : "hackathon_winners" ,
34
- function : "hackathon_winners" ,
35
- return : [ "user_id" , "position_type" ] ,
36
- } ;
37
- } ;
38
-
39
- export const UpdateHackRPlayBadges = ( url ) => {
14
+ export const UpdateHackRPlayBadges = ( url , sendgrid_api_key ) => {
40
15
const promises = [
41
- submit ( GetAllParticipantIdeasMemberId ( ) , url ) ,
42
- submit ( GetAllCompletedIdeasId ( ) , url ) ,
43
- submit ( GetAllWinnerUserId ( ) , url ) ,
44
- submit ( GetAllAuthorsId ( ) , url ) ,
16
+ submit ( GetAllParticipantIdeasMemberIdQuery ( ) , url ) ,
17
+ submit ( GetAllCompletedIdeasIdQuery ( ) , url ) ,
18
+ submit ( GetAllWinnerUserIdQuery ( ) , url ) ,
19
+ submit ( GetAllAuthorsIdQuery ( ) , url ) ,
45
20
] ;
46
21
return Promise . all ( promises )
47
22
. then ( ( res ) => {
@@ -65,37 +40,38 @@ export const UpdateHackRPlayBadges = (url) => {
65
40
completedIdeas
66
41
) ;
67
42
const winners = getAllWinnersId ( allContributors , winningIdeas ) ;
68
- // allContributors.forEach((cont) => {
69
- // if (participants.indexOf(cont.user_id) < 0) {
70
- // participants.push(cont.user_id);
71
- // }
43
+ // console.log(`Participants : ${contributorsId.length}`);
44
+ // console.log(contributorsId);
45
+ // console.log(`Submitters: ${completedContributorsId.length}`);
46
+ // console.log(completedContributorsId);
47
+ // console.log(`Winners : ${winners.length}`);
48
+ // console.log(winners);
49
+ const submitPromises = [ ] ;
50
+ contributorsId . forEach ( ( cont ) => {
51
+ submitPromises . push (
52
+ InsertBadge ( cont , HackRPlayBadges . participant , url )
53
+ ) ;
54
+ } ) ;
72
55
73
- // const completedIdeaFilter = completedIdeas.filter(
74
- // (ci) => ci.idea_id === cont.idea_id
75
- // );
76
- // if (
77
- // completedIdeaFilter.length > 0 &&
78
- // submitters.indexOf(cont.user_id) < 0
79
- // ) {
80
- // submitters.push(cont.user_id);
81
- // }
82
- // });
83
- // winnersIdeas.forEach((wi) => {
84
- // if (wi.position_type.toLowerCase() === "w") {
85
- // winners.push(wi.user_id);
86
- // }
87
- // });
88
- console . log ( `Participants : ${ contributorsId . length } ` ) ;
89
- console . log ( contributorsId ) ;
90
- console . log ( `Submitters: ${ completedContributorsId . length } ` ) ;
91
- console . log ( completedContributorsId ) ;
92
- console . log ( `Winners : ${ winners . length } ` ) ;
93
- console . log ( winners ) ;
94
- return {
95
- winners : winners ,
96
- submitters : completedContributorsId ,
97
- participants : contributorsId ,
98
- } ;
56
+ completedContributorsId . forEach ( ( cont ) => {
57
+ submitPromises . push ( InsertBadge ( cont , HackRPlayBadges . submitters , url ) ) ;
58
+ } ) ;
59
+
60
+ winners . forEach ( ( cont ) => {
61
+ submitPromises . push ( InsertBadge ( cont , HackRPlayBadges . winners , url ) ) ;
62
+ } ) ;
63
+ return Promise . all ( submitPromises )
64
+ . then ( ( res ) => {
65
+ // sendMail(sendgrid_api_key);
66
+ return {
67
+ winners : winners ,
68
+ submitters : completedContributorsId ,
69
+ participants : contributorsId ,
70
+ } ;
71
+ } )
72
+ . catch ( ( err ) => {
73
+ // console.log(some)
74
+ } ) ;
99
75
} )
100
76
. catch ( ( err ) => {
101
77
// console.error(err);
@@ -137,3 +113,20 @@ const getAllWinnersId = (allContributors, winningIdeas) => {
137
113
} ) ;
138
114
return winners ;
139
115
} ;
116
+
117
+ const IsUserBadgeExists = async ( user_id , badge_id , url ) => {
118
+ const res = await submit ( GetUserBadgeQuery ( user_id , badge_id ) , url ) ;
119
+ console . log ( res , res . length , res . length > 0 ) ;
120
+ return res . length > 0 ;
121
+ } ;
122
+
123
+ const InsertBadge = async ( user_id , badge_id , url ) => {
124
+ if ( ! ( await IsUserBadgeExists ( user_id , badge_id , url ) ) ) {
125
+ console . log ( `Inserting user: ${ user_id } ` ) ;
126
+ const userDetails = await submit ( GetUserDetailsQuery ( user_id ) , url ) ;
127
+ console . log ( userDetails ) ;
128
+ return submit ( InsertBadgeQuery ( user_id , badge_id ) , url ) ;
129
+ } else {
130
+ console . log ( `User badge exists: ${ user_id } ` ) ;
131
+ }
132
+ } ;
0 commit comments