Skip to content

Commit

Permalink
added createSignUpsRole() which automatically creates signup roles as…
Browse files Browse the repository at this point in the history
… well as changes addRoles() to add the signup roles
  • Loading branch information
JustIceO7 committed Oct 2, 2024
1 parent aeb5f9b commit d374db4
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions internal/api/verify.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"fmt"
"html/template"
"net/http"
"strconv"
"strings"

"github.com/Strum355/log"
Expand Down Expand Up @@ -133,6 +134,19 @@ func addRoles(s *discordgo.Session, gid, uid string, rid []string) error {
if err := s.GuildMemberRoleAdd(gid, uid, roleID); err != nil {
return err
}

signUpName, err := createSignUpsRole(s, gid)
if err != nil {
return err
}
signUpID := utils.GetRoleIDFromName(roles, signUpName)
if signUpID == "" {
return errors.New("no role called: " + signUpName)
}
if err := s.GuildMemberRoleAdd(gid, uid, signUpID); err != nil {
return err
}

for _, additionalRoleID := range rid {
if err := s.GuildMemberRoleAdd(gid, uid, additionalRoleID); err != nil {
return err
Expand Down Expand Up @@ -160,3 +174,34 @@ func dataFromState(state string) (uid string, gid string, announce_cid string, l
}
return
}

func createSignUpsRole(s *discordgo.Session, gid string) (signUpName string, err error) {
roles, err := s.GuildRoles(gid)
if err != nil {
return "", err
}

_, month, year := utils.GetTime()

roleName := "Signups "
if month < 9 {
roleName += strconv.Itoa(year-1) + "/" + strconv.Itoa(year)
} else {
roleName += strconv.Itoa(year) + "/" + strconv.Itoa(year+1)
}

roleID := utils.GetRoleIDFromName(roles, roleName)
color := 0 // Grey
permissions := int64(0) // No permissions
if roleID == "" {
_, err := s.GuildRoleCreate(gid, &discordgo.RoleParams{
Name: roleName,
Color: &color,
Permissions: &permissions,
})
if err != nil {
return "", err
}
}
return roleName, nil
}

0 comments on commit d374db4

Please sign in to comment.