Skip to content

Commit c6e2ab8

Browse files
Allow to edit standup notes (#13)
* initial commit * adding uuid and editing working * fix linting * some more linting fixing * some more cleaning * update sql request
1 parent 584bcf4 commit c6e2ab8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2024
-441
lines changed

Gopkg.lock

+10-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Gopkg.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
name = "github.com/lib/pq"
3030

3131
[[constraint]]
32+
branch = "master"
3233
name = "github.com/nlopes/slack"
33-
version = "0.2.0"
3434

3535
[prune]
3636
go-tests = true

bot/common.go

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package bot
2+
3+
import (
4+
"database/sql"
5+
"fmt"
6+
7+
log "github.com/Sirupsen/logrus"
8+
"github.com/matthieudolci/hatcher/database"
9+
uuid "github.com/satori/go.uuid"
10+
)
11+
12+
func (s *Slack) rowExists(query string, args ...interface{}) bool {
13+
14+
var exists bool
15+
16+
err := database.DB.QueryRow(query, args...).Scan(&exists)
17+
if err != nil && err != sql.ErrNoRows {
18+
log.WithFields(log.Fields{
19+
"arg": args,
20+
}).WithError(err).Error("error checking if row exists")
21+
}
22+
return exists
23+
}
24+
25+
func (s *Slack) queryRow(query string, args ...interface{}) error {
26+
27+
var id int
28+
29+
err := database.DB.QueryRow(query, args...).Scan(&id)
30+
if err != nil && err != sql.ErrNoRows {
31+
log.WithFields(log.Fields{
32+
"arg": args,
33+
}).WithError(err).Error("error querying the row")
34+
}
35+
return nil
36+
}
37+
38+
func (s *Slack) queryUUID(query string, args ...interface{}) (string, error) {
39+
40+
var uuid string
41+
42+
err := database.DB.QueryRow(query, args...).Scan(&uuid)
43+
if err != nil && err != sql.ErrNoRows {
44+
log.WithFields(log.Fields{
45+
"arg": args,
46+
}).WithError(err).Error("error querying the row")
47+
}
48+
49+
u := fmt.Sprint(uuid)
50+
51+
return u, err
52+
}
53+
54+
func (s *Slack) createsUUID() string {
55+
u := uuid.NewV4()
56+
uuid := fmt.Sprint(u)
57+
return uuid
58+
}

bot/handler_slack.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/nlopes/slack"
1212
)
1313

14-
// Listen on /slack for answer from the questions asked in bot_setup.go
14+
// Listen on /slack for answer from the questions asked in setup.go
1515
// and dispatch to the good functions
1616
func (s *Slack) slackPostHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
1717

bot/listen_slack.go

+23
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,29 @@ func (s *Slack) run(ctx context.Context) {
6464
log.Info("Now listening for incoming messages...")
6565

6666
for msg := range rtm.IncomingEvents {
67+
switch x := msg.Data.(type) {
68+
case *slack.MessageEvent:
69+
if x.SubType == "message_changed" {
70+
err := s.checkIfYesterdayMessageEdited(x)
71+
if err != nil {
72+
log.WithFields(log.Fields{
73+
"userid": x.User,
74+
}).WithError(err).Error("Checking if yesterday standup was edited")
75+
}
76+
err = s.checkIfTodayMessageEdited(x)
77+
if err != nil {
78+
log.WithFields(log.Fields{
79+
"userid": x.User,
80+
}).WithError(err).Error("Checking if yesterday standup was edited")
81+
}
82+
err = s.checkIfBlockerMessageEdited(x)
83+
if err != nil {
84+
log.WithFields(log.Fields{
85+
"userid": x.User,
86+
}).WithError(err).Error("Checking if yesterday standup was edited")
87+
}
88+
}
89+
}
6790
switch ev := msg.Data.(type) {
6891
case *slack.MessageEvent:
6992
if len(ev.User) == 0 {

0 commit comments

Comments
 (0)