@@ -50,7 +50,26 @@ Examples:
5050 ctx := context .Background ()
5151 client := cfg .apiClient (apiFlags , flagSet .Output ())
5252
53- query := `
53+ currentUserQuery := `
54+ query {
55+ currentUser {
56+ username
57+ }
58+ }
59+ `
60+ var currentUserResult struct {
61+ Data struct {
62+ CurrentUser struct {
63+ Username string
64+ }
65+ }
66+ }
67+ if ok , err := cfg .apiClient (apiFlags , flagSet .Output ()).NewRequest (currentUserQuery , nil ).DoRaw (context .Background (), & currentUserResult ); err != nil || ! ok {
68+ return err
69+ }
70+ fmt .Println (currentUserResult )
71+
72+ usersQuery := `
5473query Users() {
5574 users() {
5675 nodes {
@@ -61,21 +80,26 @@ query Users() {
6180` + userFragment
6281
6382 // get users to delete
64- var result struct {
83+ var usersResult struct {
6584 Users struct {
6685 Nodes []User
6786 }
6887 }
69- if ok , err := client .NewRequest (query , nil ).Do (ctx , & result ); err != nil || ! ok {
88+ if ok , err := client .NewRequest (usersQuery , nil ).Do (ctx , & usersResult ); err != nil || ! ok {
7089 return err
7190 }
91+ fmt .Println (usersResult )
7292
7393 usersToDelete := make ([]UserToDelete , 0 )
74- for _ , user := range result .Users .Nodes {
94+ for _ , user := range usersResult .Users .Nodes {
7595 daysSinceLastUse , wasLastActive , err := computeDaysSinceLastUse (user )
7696 if err != nil {
7797 return err
7898 }
99+ // never remove user issuing command
100+ if user .Username == currentUserResult .Data .CurrentUser .Username {
101+ continue
102+ }
79103 if ! wasLastActive && ! * removeNoLastActive {
80104 continue
81105 }
0 commit comments