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 .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ checksum:
snapshot:
name_template: "{{ .Tag }}-next"
release:
prerelease: auto
prerelease: auto
12 changes: 6 additions & 6 deletions app/internal/domain/service/slack_response.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,14 @@ const (
// postEmailList method posts emailList using slack postMessageAPI.
// The chunkedLines are generated and requested for each chunk,
// because of considering the limit the number of characters of slackAPI.
func (s *slackResponseService) postEmailList(ctx context.Context, channelID string, emails []*model.SlackUserEmail, ts string, userID string) error {
func (s *slackResponseService) postEmailList(ctx context.Context, channelID string, emails []*model.SlackUserEmail, ts string) error {
lines := append(make([]string, 0, len(emails)+1), "参加者一覧")
for _, email := range emails {
lines = append(lines, email.Email)
}
chunkedLines := slice.SplitStringSliceInChunks(lines, lineSizeOfPostEmailList)
for _, chunkedLine := range chunkedLines {
err := s.slackRepository.PostEphemeral(ctx, channelID, strings.Join(chunkedLine, "\n"), ts, userID)
err := s.slackRepository.PostMessage(ctx, channelID, strings.Join(chunkedLine, "\n"), ts)
if err != nil {
return err
}
Expand All @@ -79,10 +79,10 @@ func (s *slackResponseService) ReplyEmailList(ctx context.Context, event *slacke
for _, email := range emails {
b.WriteString("\n" + email.Email)
}
return s.slackRepository.PostEphemeral(ctx, event.Channel, b.String(), event.ThreadTimeStamp, event.User)
return s.slackRepository.PostMessage(ctx, event.Channel, b.String(), event.ThreadTimeStamp)
}

return s.postEmailList(ctx, event.Channel, emails, event.ThreadTimeStamp, event.User)
return s.postEmailList(ctx, event.Channel, emails, event.ThreadTimeStamp)
}

func (s *slackResponseService) ReplyError(ctx context.Context, event *slackevents.AppMentionEvent, err error) error {
Expand All @@ -95,8 +95,8 @@ func (s *slackResponseService) ReplyError(ctx context.Context, event *slackevent
}
if s.errorRepository.ErrUserNotFound(err) {
msg += "参加者はいないようです:neko_namida:"
return s.slackRepository.PostEphemeral(
ctx, event.Channel, msg, event.ThreadTimeStamp, event.User,
return s.slackRepository.PostMessage(
ctx, event.Channel, msg, event.ThreadTimeStamp,
)
}
return err
Expand Down
40 changes: 17 additions & 23 deletions app/internal/domain/service/slack_response_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ func Test_slackResponseService_postEmailList(t *testing.T) {
emails []*model.SlackUserEmail
cid string
ts string
userID string
}
tests := []struct {
name string
Expand All @@ -76,12 +75,11 @@ func Test_slackResponseService_postEmailList(t *testing.T) {
emails: createEmails(0, 1),
ts: "ts",
cid: "cid",
userID: "sampleUser",
},
prepare: func(msr *mock_repository.MockSlackRepository) {
gomock.InOrder(
msr.EXPECT().PostEphemeral(
gomock.Any(), "cid", createMessage("参加者一覧", createEmails(0, 1)), "ts", "sampleUser").
msr.EXPECT().PostMessage(
gomock.Any(), "cid", createMessage("参加者一覧", createEmails(0, 1)), "ts").
Return(nil),
)
},
Expand All @@ -92,12 +90,11 @@ func Test_slackResponseService_postEmailList(t *testing.T) {
emails: createEmails(0, lineSizeOfPostEmailList-1),
ts: "ts",
cid: "cid",
userID: "sampleUser",
},
prepare: func(msr *mock_repository.MockSlackRepository) {
gomock.InOrder(
msr.EXPECT().PostEphemeral(
gomock.Any(), "cid", createMessage("参加者一覧", createEmails(0, lineSizeOfPostEmailList-1)), "ts", "sampleUser").
msr.EXPECT().PostMessage(
gomock.Any(), "cid", createMessage("参加者一覧", createEmails(0, lineSizeOfPostEmailList-1)), "ts").
Return(nil),
)
},
Expand All @@ -108,15 +105,14 @@ func Test_slackResponseService_postEmailList(t *testing.T) {
emails: createEmails(0, lineSizeOfPostEmailList),
ts: "ts",
cid: "cid",
userID: "sampleUser",
},
prepare: func(msr *mock_repository.MockSlackRepository) {
gomock.InOrder(
msr.EXPECT().PostEphemeral(
gomock.Any(), "cid", createMessage("参加者一覧", createEmails(0, lineSizeOfPostEmailList-1)), "ts", "sampleUser").
msr.EXPECT().PostMessage(
gomock.Any(), "cid", createMessage("参加者一覧", createEmails(0, lineSizeOfPostEmailList-1)), "ts").
Return(nil),
msr.EXPECT().PostEphemeral(
gomock.Any(), "cid", createMessage("", createEmails(lineSizeOfPostEmailList-1, 1)), "ts", "sampleUser").
msr.EXPECT().PostMessage(
gomock.Any(), "cid", createMessage("", createEmails(lineSizeOfPostEmailList-1, 1)), "ts").
Return(nil),
)
},
Expand All @@ -136,7 +132,7 @@ func Test_slackResponseService_postEmailList(t *testing.T) {
slackRepository: msr,
errorRepository: mer,
}
if err := s.postEmailList(ctx, tt.args.cid, tt.args.emails, tt.args.ts, tt.args.userID); (err != nil) != tt.wantErr {
if err := s.postEmailList(ctx, tt.args.cid, tt.args.emails, tt.args.ts); (err != nil) != tt.wantErr {
t.Errorf("postEmailList() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand All @@ -160,17 +156,16 @@ func Test_slackErrorResponseService_ReplyEmailList(t *testing.T) {
event: &slackevents.AppMentionEvent{
Channel: "sampleChannel",
ThreadTimeStamp: "sampleThreadTimeStamp",
User: "sampleUser",
},
emails: []*model.SlackUserEmail{
{Email: "sample01@example.com"},
{Email: "sample02@example.com"},
},
},
prepare: func(msr *mock_repository.MockSlackRepository) {
msr.EXPECT().PostEphemeral(gomock.Any(), "sampleChannel",
msr.EXPECT().PostMessage(gomock.Any(), "sampleChannel",
"参加者一覧\nsample01@example.com\nsample02@example.com",
"sampleThreadTimeStamp", "sampleUser").Return(nil)
"sampleThreadTimeStamp").Return(nil)
},
},
{
Expand All @@ -179,17 +174,16 @@ func Test_slackErrorResponseService_ReplyEmailList(t *testing.T) {
event: &slackevents.AppMentionEvent{
Channel: "sampleChannel",
ThreadTimeStamp: "sampleThreadTimeStamp",
User: "sampleUser",
},
emails: []*model.SlackUserEmail{
{Email: "sample01@example.com"},
{Email: "sample02@example.com"},
},
},
prepare: func(msr *mock_repository.MockSlackRepository) {
msr.EXPECT().PostEphemeral(gomock.Any(), "sampleChannel",
msr.EXPECT().PostMessage(gomock.Any(), "sampleChannel",
"参加者一覧\nsample01@example.com\nsample02@example.com",
"sampleThreadTimeStamp", "sampleUser").Return(errors.New("sample error"))
"sampleThreadTimeStamp").Return(errors.New("sample error"))
},
wantErr: true,
},
Expand Down Expand Up @@ -258,9 +252,9 @@ func Test_slackErrorResponseService_ReplyError(t *testing.T) {
gomock.InOrder(
mer.EXPECT().ErrThreadNotFound(errors.New("user_not_found")).Return(false),
mer.EXPECT().ErrUserNotFound(errors.New("user_not_found")).Return(true),
msr.EXPECT().PostEphemeral(gomock.Any(), "sampleChannel",
msr.EXPECT().PostMessage(gomock.Any(), "sampleChannel",
"参加者はいないようです:neko_namida:",
"sampleThreadTimeStamp", "sampleUser").Return(nil),
"sampleThreadTimeStamp").Return(nil),
)
},
},
Expand Down Expand Up @@ -298,9 +292,9 @@ func Test_slackErrorResponseService_ReplyError(t *testing.T) {
gomock.InOrder(
mer.EXPECT().ErrThreadNotFound(errors.New("user_not_found")).Return(false),
mer.EXPECT().ErrUserNotFound(errors.New("user_not_found")).Return(true),
msr.EXPECT().PostEphemeral(gomock.Any(), "sampleChannel",
msr.EXPECT().PostMessage(gomock.Any(), "sampleChannel",
"参加者はいないようです:neko_namida:",
"sampleThreadTimeStamp", "sampleUser").Return(errors.New("sample_error")),
"sampleThreadTimeStamp").Return(errors.New("sample_error")),
)
},
wantErr: true,
Expand Down
Loading