@@ -22,72 +22,89 @@ const (
2222func (c * Client ) GetLHSData (ctx context.Context ) ([]* github.Issue , []* github.Issue , []* github.Issue , error ) {
2323 orgsList := c .getOrganizations ()
2424 var resultReview , resultAssignee , resultOpenPR []* github.Issue
25+
26+ params := map [string ]interface {}{
27+ queryParamOpenPRQueryArg : githubv4 .String (fmt .Sprintf ("author:%s is:pr is:%s archived:false" , c .username , githubv4 .PullRequestStateOpen )),
28+ queryParamReviewPRQueryArg : githubv4 .String (fmt .Sprintf ("review-requested:%s is:pr is:%s archived:false" , c .username , githubv4 .PullRequestStateOpen )),
29+ queryParamAssigneeQueryArg : githubv4 .String (fmt .Sprintf ("assignee:%s is:%s archived:false" , c .username , githubv4 .PullRequestStateOpen )),
30+ queryParamReviewsCursor : (* githubv4 .String )(nil ),
31+ queryParamAssignmentsCursor : (* githubv4 .String )(nil ),
32+ queryParamOpenPRsCursor : (* githubv4 .String )(nil ),
33+ }
34+
35+ var err error
2536 for _ , org := range orgsList {
26- params := map [string ]interface {}{
27- queryParamOpenPRQueryArg : githubv4 .String (fmt .Sprintf ("author:%s is:pr is:%s archived:false" , c .username , githubv4 .PullRequestStateOpen )),
28- queryParamReviewPRQueryArg : githubv4 .String (fmt .Sprintf ("review-requested:%s is:pr is:%s archived:false" , c .username , githubv4 .PullRequestStateOpen )),
29- queryParamAssigneeQueryArg : githubv4 .String (fmt .Sprintf ("assignee:%s is:%s archived:false" , c .username , githubv4 .PullRequestStateOpen )),
30- queryParamReviewsCursor : (* githubv4 .String )(nil ),
31- queryParamAssignmentsCursor : (* githubv4 .String )(nil ),
32- queryParamOpenPRsCursor : (* githubv4 .String )(nil ),
37+ resultReview , resultAssignee , resultOpenPR , err = c .fetchLHSData (ctx , resultReview , resultAssignee , resultOpenPR , org , params )
38+ if err != nil {
39+ return nil , nil , nil , err
3340 }
41+ }
42+
43+ if len (orgsList ) == 0 {
44+ return c .fetchLHSData (ctx , resultReview , resultAssignee , resultOpenPR , "" , params )
45+ }
3446
47+ return resultReview , resultAssignee , resultOpenPR , nil
48+ }
49+
50+ func (c * Client ) fetchLHSData (ctx context.Context , resultReview , resultAssignee , resultOpenPR []* github.Issue , org string , params map [string ]interface {}) ([]* github.Issue , []* github.Issue , []* github.Issue , error ) {
51+ if org != "" {
3552 params [queryParamOpenPRQueryArg ] = githubv4 .String (fmt .Sprintf ("org:%s %s" , org , params [queryParamOpenPRQueryArg ]))
3653 params [queryParamReviewPRQueryArg ] = githubv4 .String (fmt .Sprintf ("org:%s %s" , org , params [queryParamReviewPRQueryArg ]))
3754 params [queryParamAssigneeQueryArg ] = githubv4 .String (fmt .Sprintf ("org:%s %s" , org , params [queryParamAssigneeQueryArg ]))
55+ }
3856
39- allReviewRequestsFetched , allAssignmentsFetched , allOpenPRsFetched := false , false , false
57+ allReviewRequestsFetched , allAssignmentsFetched , allOpenPRsFetched := false , false , false
4058
41- for {
42- if allReviewRequestsFetched && allAssignmentsFetched && allOpenPRsFetched {
43- break
44- }
45-
46- if err := c .executeQuery (ctx , & mainQuery , params ); err != nil {
47- return nil , nil , nil , errors .Wrap (err , "Not able to excute the query" )
48- }
59+ for {
60+ if allReviewRequestsFetched && allAssignmentsFetched && allOpenPRsFetched {
61+ break
62+ }
4963
50- if ! allReviewRequestsFetched {
51- for i := range mainQuery .ReviewRequests .Nodes {
52- resp := mainQuery .ReviewRequests .Nodes [i ]
53- pr := getPR (& resp )
54- resultReview = append (resultReview , pr )
55- }
64+ if err := c .executeQuery (ctx , & mainQuery , params ); err != nil {
65+ return nil , nil , nil , errors .Wrap (err , "Not able to excute the query" )
66+ }
5667
57- if ! mainQuery .ReviewRequests .PageInfo .HasNextPage {
58- allReviewRequestsFetched = true
59- }
68+ if ! allReviewRequestsFetched {
69+ for i := range mainQuery .ReviewRequests .Nodes {
70+ resp := mainQuery .ReviewRequests .Nodes [i ]
71+ pr := getPR (& resp )
72+ resultReview = append (resultReview , pr )
73+ }
6074
61- params [queryParamReviewsCursor ] = githubv4 .NewString (mainQuery .ReviewRequests .PageInfo .EndCursor )
75+ if ! mainQuery .ReviewRequests .PageInfo .HasNextPage {
76+ allReviewRequestsFetched = true
6277 }
6378
64- if ! allAssignmentsFetched {
65- for i := range mainQuery .Assignments .Nodes {
66- resp := mainQuery .Assignments .Nodes [i ]
67- issue := newIssueFromAssignmentResponse (& resp )
68- resultAssignee = append (resultAssignee , issue )
69- }
79+ params [queryParamReviewsCursor ] = githubv4 .NewString (mainQuery .ReviewRequests .PageInfo .EndCursor )
80+ }
7081
71- if ! mainQuery .Assignments .PageInfo .HasNextPage {
72- allAssignmentsFetched = true
73- }
82+ if ! allAssignmentsFetched {
83+ for i := range mainQuery .Assignments .Nodes {
84+ resp := mainQuery .Assignments .Nodes [i ]
85+ issue := newIssueFromAssignmentResponse (& resp )
86+ resultAssignee = append (resultAssignee , issue )
87+ }
7488
75- params [queryParamAssignmentsCursor ] = githubv4 .NewString (mainQuery .Assignments .PageInfo .EndCursor )
89+ if ! mainQuery .Assignments .PageInfo .HasNextPage {
90+ allAssignmentsFetched = true
7691 }
7792
78- if ! allOpenPRsFetched {
79- for i := range mainQuery .OpenPullRequests .Nodes {
80- resp := mainQuery .OpenPullRequests .Nodes [i ]
81- pr := getPR (& resp )
82- resultOpenPR = append (resultOpenPR , pr )
83- }
93+ params [queryParamAssignmentsCursor ] = githubv4 .NewString (mainQuery .Assignments .PageInfo .EndCursor )
94+ }
8495
85- if ! mainQuery .OpenPullRequests .PageInfo .HasNextPage {
86- allOpenPRsFetched = true
87- }
96+ if ! allOpenPRsFetched {
97+ for i := range mainQuery .OpenPullRequests .Nodes {
98+ resp := mainQuery .OpenPullRequests .Nodes [i ]
99+ pr := getPR (& resp )
100+ resultOpenPR = append (resultOpenPR , pr )
101+ }
88102
89- params [queryParamOpenPRsCursor ] = githubv4 .NewString (mainQuery .OpenPullRequests .PageInfo .EndCursor )
103+ if ! mainQuery .OpenPullRequests .PageInfo .HasNextPage {
104+ allOpenPRsFetched = true
90105 }
106+
107+ params [queryParamOpenPRsCursor ] = githubv4 .NewString (mainQuery .OpenPullRequests .PageInfo .EndCursor )
91108 }
92109 }
93110
0 commit comments