summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nlopes/slack/reminders.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2019-01-31 17:06:36 +0100
committerWim <wim@42.be>2019-01-31 17:06:36 +0100
commitc81c0dd22a7779148c4890cfd4bbf490054f06f1 (patch)
tree06ce6fcdc8f3a2278a2f3050ba42088dd2e64485 /vendor/github.com/nlopes/slack/reminders.go
parentf8a1ab4622a5b833282e9ee42f382451d17c1a06 (diff)
downloadmatterbridge-msglm-c81c0dd22a7779148c4890cfd4bbf490054f06f1.tar.gz
matterbridge-msglm-c81c0dd22a7779148c4890cfd4bbf490054f06f1.tar.bz2
matterbridge-msglm-c81c0dd22a7779148c4890cfd4bbf490054f06f1.zip
Update vendor, move to labstack/echo/v4 Fixes #698
Diffstat (limited to 'vendor/github.com/nlopes/slack/reminders.go')
-rw-r--r--vendor/github.com/nlopes/slack/reminders.go75
1 files changed, 75 insertions, 0 deletions
diff --git a/vendor/github.com/nlopes/slack/reminders.go b/vendor/github.com/nlopes/slack/reminders.go
new file mode 100644
index 00000000..54c91789
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/reminders.go
@@ -0,0 +1,75 @@
+package slack
+
+import (
+ "context"
+ "net/url"
+ "time"
+)
+
+type Reminder struct {
+ ID string `json:"id"`
+ Creator string `json:"creator"`
+ User string `json:"user"`
+ Text string `json:"text"`
+ Recurring bool `json:"recurring"`
+ Time time.Time `json:"time"`
+ CompleteTS int `json:"complete_ts"`
+}
+
+type reminderResp struct {
+ SlackResponse
+ Reminder Reminder `json:"reminder"`
+}
+
+func (api *Client) doReminder(ctx context.Context, path string, values url.Values) (*Reminder, error) {
+ response := &reminderResp{}
+ if err := postSlackMethod(ctx, api.httpclient, path, values, response, api); err != nil {
+ return nil, err
+ }
+ return &response.Reminder, response.Err()
+}
+
+// AddChannelReminder adds a reminder for a channel.
+//
+// See https://api.slack.com/methods/reminders.add (NOTE: the ability to set
+// reminders on a channel is currently undocumented but has been tested to
+// work)
+func (api *Client) AddChannelReminder(channelID, text, time string) (*Reminder, error) {
+ values := url.Values{
+ "token": {api.token},
+ "text": {text},
+ "time": {time},
+ "channel": {channelID},
+ }
+ return api.doReminder(context.Background(), "reminders.add", values)
+}
+
+// AddUserReminder adds a reminder for a user.
+//
+// See https://api.slack.com/methods/reminders.add (NOTE: the ability to set
+// reminders on a channel is currently undocumented but has been tested to
+// work)
+func (api *Client) AddUserReminder(userID, text, time string) (*Reminder, error) {
+ values := url.Values{
+ "token": {api.token},
+ "text": {text},
+ "time": {time},
+ "user": {userID},
+ }
+ return api.doReminder(context.Background(), "reminders.add", values)
+}
+
+// DeleteReminder deletes an existing reminder.
+//
+// See https://api.slack.com/methods/reminders.delete
+func (api *Client) DeleteReminder(id string) error {
+ values := url.Values{
+ "token": {api.token},
+ "reminder": {id},
+ }
+ response := &SlackResponse{}
+ if err := postSlackMethod(context.Background(), api.httpclient, "reminders.delete", values, response, api); err != nil {
+ return err
+ }
+ return response.Err()
+}