Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"os"
)

var Version = "3.3.0"
var Version = "3.3.1"
var Env = os.Getenv("ENV")
var Port = os.Getenv("PORT")
var Prefix = os.Getenv("PREFIX")
Expand Down
10 changes: 8 additions & 2 deletions jobs/drive.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,14 @@ func RegisterDriveCronJob() {
utils.SugarLogger.Infoln("Starting google drive CRON Job...")
var wg sync.WaitGroup
wg.Add(2)
go service.PopulateMemberDirectorySheet()
go service.CleanDriveMembers()
go func() {
defer wg.Done()
service.PopulateMemberDirectorySheet()
}()
go func() {
defer wg.Done()
service.CleanDriveMembers()
}()
wg.Wait()
utils.SugarLogger.Infoln("Finished google drive CRON Job!")
_, _ = service.Discord.ChannelMessageSend(config.DiscordLogChannel, ":white_check_mark: Finished google drive job!")
Expand Down
52 changes: 37 additions & 15 deletions service/drive_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"log"
"sentinel/config"
"sentinel/utils"
"sort"
"strings"

"golang.org/x/oauth2/google"
Expand Down Expand Up @@ -93,6 +94,7 @@ func RemoveMemberFromDrive(driveID string, email string) error {
utils.SugarLogger.Errorln(err)
return err
}
SendMessage(config.DiscordLogChannel, fmt.Sprintf("Removed %s from drive", email))
return nil
}

Expand All @@ -117,9 +119,23 @@ func AddMemberToDrive(driveID string, email string, role string) error {
return err
}
utils.SugarLogger.Infof("Permission ID: %s", resp.Id)
SendMessage(config.DiscordLogChannel, fmt.Sprintf("Added %s to drive with `%s` role", email, role))
return nil
}

// PopulateDriveMembers adds all users to the shared drive with the appropriate role.
// Useful for when you accidentally remove everyone from the shared drive lmfao
func PopulateDriveMembers() {
users := GetAllUsers()
for _, user := range users {
if user.IsInnerCircle() {
AddMemberToDrive(config.SharedDriveID, user.Email, "organizer")
} else {
AddMemberToDrive(config.SharedDriveID, user.Email, "writer")
}
}
}

// CleanDriveMembers removes users from the shared drive that are not in the member directory.
func CleanDriveMembers() {
keepEmails := []string{
Expand Down Expand Up @@ -176,14 +192,19 @@ func PopulateMemberDirectorySheet() {
utils.SugarLogger.Infoln("Rows after 5 have been deleted successfully.")

users := GetAllUsers()
sort.Slice(users, func(i, j int) bool {
return users[i].FirstName < users[j].FirstName
})

values := make([][]interface{}, len(users))
for i, user := range users {
subteams := []string{}
for _, subteam := range user.Subteams {
subteams = append(subteams, subteam.Name)
subteams := make([]string, len(user.Subteams))
for j, subteam := range user.Subteams {
subteams[j] = subteam.Name
}
subteamString := strings.Join(subteams, ", ")
roleString := strings.Join(user.Roles, ", ")
values := []interface{}{
values[i] = []interface{}{
user.ID,
user.FirstName,
user.LastName,
Expand All @@ -200,16 +221,17 @@ func PopulateMemberDirectorySheet() {
subteamString,
roleString,
}
writeRange := fmt.Sprintf("A%d", i+6)
writeRequest := &sheets.ValueRange{
Values: [][]interface{}{values},
}
_, err = SheetClient.Spreadsheets.Values.Update(config.MemberDirectorySheetID, writeRange, writeRequest).
ValueInputOption("RAW").
Do()
if err != nil {
utils.SugarLogger.Errorf("Unable to write data to sheet: %v", err)
return
}
}

writeRange := "A6:O"
writeRequest := &sheets.ValueRange{
Values: values,
}
_, err = SheetClient.Spreadsheets.Values.Update(config.MemberDirectorySheetID, writeRange, writeRequest).
ValueInputOption("RAW").
Do()
if err != nil {
utils.SugarLogger.Errorf("Unable to write data to sheet: %v", err)
return
}
}
2 changes: 2 additions & 0 deletions service/github_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ func AddUserToGithub(userID string, username string) error {
return fmt.Errorf("failed to add user to GitHub organization: %s", string(body))
}
addGithubUsernameToRoles(username, userID)
SendMessage(config.DiscordLogChannel, fmt.Sprintf("Added %s (%s) to GitHub organization", username, user.Email))
return nil
}

Expand All @@ -119,6 +120,7 @@ func RemoveUserFromGithub(userID string, username string) error {
return fmt.Errorf("failed to remove user from GitHub organization: %s", string(body))
}
removeGithubUsernameFromRoles(username, userID)
SendMessage(config.DiscordLogChannel, fmt.Sprintf("Removed %s from GitHub organization", username))
return nil
}

Expand Down
5 changes: 5 additions & 0 deletions service/wiki_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ func CreateWikiUser(input model.WikiUserCreate) (int, error) {
return 0, err
}
utils.SugarLogger.Infof("Created wiki user: %s (%s)", user.Name, user.Email)
SendMessage(config.DiscordLogChannel, fmt.Sprintf("Created wiki user: %s (%s)", user.Name, user.Email))
return user.ID, nil
}

Expand Down Expand Up @@ -140,6 +141,8 @@ func UpdateWikiUser(id int, input model.WikiUserCreate) error {
body, _ := io.ReadAll(resp.Body)
return fmt.Errorf("failed to update wiki user: %s", string(body))
}
utils.SugarLogger.Infof("Updated wiki user: %d", id)
SendMessage(config.DiscordLogChannel, fmt.Sprintf("Updated wiki user: %d", id))
return nil
}

Expand All @@ -162,6 +165,8 @@ func DeleteWikiUser(id int) error {
body, _ := io.ReadAll(resp.Body)
return fmt.Errorf("failed to delete wiki user: %s", string(body))
}
utils.SugarLogger.Infof("Deleted wiki user: %d", id)
SendMessage(config.DiscordLogChannel, fmt.Sprintf("Deleted wiki user: %d", id))
return nil
}

Expand Down