Skip to content

Commit 0d2f7c5

Browse files
committed
fixing multiple messages - Thanks Daniel
1 parent 11cf93a commit 0d2f7c5

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

bot/happiness_survey.go

+14-9
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ func (s *Slack) resultHappinessSurvey(userid, result string) {
8585
s.Logger.Printf("[DEBUG] Happiness Survey Result written in database.\n")
8686
}
8787

88+
var scheduler *gocron.Scheduler
89+
var stop chan bool
90+
8891
// GetTimeAndUsersHappinessSurvey gets the time selected by a user for the Happiness survey
8992
func (s *Slack) GetTimeAndUsersHappinessSurvey() error {
9093
type ScheduleData struct {
@@ -101,7 +104,11 @@ func (s *Slack) GetTimeAndUsersHappinessSurvey() error {
101104
}
102105
}
103106
defer rows.Close()
104-
gocron.Clear()
107+
if scheduler != nil {
108+
stop <- true
109+
scheduler.Clear()
110+
}
111+
scheduler = gocron.NewScheduler()
105112
for rows.Next() {
106113
scheduledata := ScheduleData{}
107114
err = rows.Scan(&scheduledata.Times, &scheduledata.UserID)
@@ -111,8 +118,7 @@ func (s *Slack) GetTimeAndUsersHappinessSurvey() error {
111118
fmt.Println(scheduledata)
112119
s.runHappinessSurveySchedule(scheduledata.Times, scheduledata.UserID)
113120
}
114-
channel := make(chan int)
115-
go startCron(channel)
121+
stop = scheduler.Start()
116122
// get any error encountered during iteration
117123
err = rows.Err()
118124
if err != nil {
@@ -130,7 +136,11 @@ func (s *Slack) runHappinessSurveySchedule(times, userid string) {
130136
} else {
131137
gocron.ChangeLoc(location)
132138
}
133-
gocron.Every(1).Day().At(times).Do(s.askHappinessSurveyScheduled, userid)
139+
scheduler.Every(1).Monday().At(times).Do(s.askHappinessSurveyScheduled, userid)
140+
scheduler.Every(1).Tuesday().At(times).Do(s.askHappinessSurveyScheduled, userid)
141+
scheduler.Every(1).Wednesday().At(times).Do(s.askHappinessSurveyScheduled, userid)
142+
scheduler.Every(1).Thursday().At(times).Do(s.askHappinessSurveyScheduled, userid)
143+
scheduler.Every(1).Friday().At(times).Do(s.askHappinessSurveyScheduled, userid)
134144
}
135145

136146
// Ask how are the users doing
@@ -179,8 +189,3 @@ func (s *Slack) askHappinessSurveyScheduled(userid string) error {
179189
fmt.Printf("Scheduled happyness survey for user %s posted", userid)
180190
return nil
181191
}
182-
183-
// Starts gocron
184-
func startCron(channel chan int) {
185-
<-gocron.Start()
186-
}

0 commit comments

Comments
 (0)