generated from mattermost/mattermost-plugin-starter-template
-
Notifications
You must be signed in to change notification settings - Fork 10
/
api_user_add_to_calendar.go
43 lines (36 loc) · 1007 Bytes
/
api_user_add_to_calendar.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright (c) 2019-present Mattermost, Inc. All Rights Reserved.
// See License for license information.
package sl
import (
"github.com/mattermost/mattermost-plugin-solar-lottery/server/utils/md"
"github.com/mattermost/mattermost-plugin-solar-lottery/server/utils/types"
)
type InAddToCalendar struct {
MattermostUserIDs *types.IDSet
Unavailable *Unavailable
}
type OutCalendar struct {
Users *Users
md.MD
}
func (sl *sl) AddToCalendar(params InAddToCalendar) (*OutCalendar, error) {
users := NewUsers()
err := sl.Setup(
pushAPILogger("AddToCalendar", params),
withExpandedUsers(¶ms.MattermostUserIDs, users),
)
if err != nil {
return nil, err
}
defer sl.popLogger()
for _, user := range users.AsArray() {
sl.addUserUnavailable(user, params.Unavailable)
}
out := &OutCalendar{
Users: users,
MD: md.Markdownf("added unavailable event %s to %s",
sl.actingUser.MarkdownUnavailable(params.Unavailable), users.Markdown()),
}
sl.logAPI(out)
return out, nil
}