From 8bc6dae800e7228d5af5f2dceecfe61d2df28870 Mon Sep 17 00:00:00 2001 From: Andy Haskell Date: Thu, 2 Sep 2021 09:21:53 -0400 Subject: [PATCH] add deserialization for file unshared event --- slackevents/inner_events.go | 11 +++++++++++ slackevents/inner_events_test.go | 26 ++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/slackevents/inner_events.go b/slackevents/inner_events.go index c78c4062b..eb1e8df65 100644 --- a/slackevents/inner_events.go +++ b/slackevents/inner_events.go @@ -182,6 +182,14 @@ type FileSharedEvent struct { EventTimestamp string `json:"event_ts"` } +// FileUnsharedEvent represents the information associated with the File +// unshared event. +type FileUnsharedEvent struct { + Type string `json:"type"` + FileID string `json:"file_id"` + File FileEventFile `json:"file"` +} + // FileEventFile represents information on the specific file being shared in a // file-related Slack event. type FileEventFile struct { @@ -555,6 +563,8 @@ const ( FileDeleted = EventsAPIType("file_deleted") // FileShared is sent when a file is shared. FileShared = EventsAPIType("file_shared") + // FileUnshared is sent when a file is unshared. + FileUnshared = EventsAPIType("file_unshared") // GridMigrationFinished An enterprise grid migration has finished on this workspace. GridMigrationFinished = EventsAPIType("grid_migration_finished") // GridMigrationStarted An enterprise grid migration has started on this workspace. @@ -608,6 +618,7 @@ var EventsAPIInnerEventMapping = map[EventsAPIType]interface{}{ FileChange: FileChangeEvent{}, FileDeleted: FileDeletedEvent{}, FileShared: FileSharedEvent{}, + FileUnshared: FileUnsharedEvent{}, GroupDeleted: GroupDeletedEvent{}, GroupArchive: GroupArchiveEvent{}, GroupUnarchive: GroupUnarchiveEvent{}, diff --git a/slackevents/inner_events_test.go b/slackevents/inner_events_test.go index 694ac47d9..ae3ee179c 100644 --- a/slackevents/inner_events_test.go +++ b/slackevents/inner_events_test.go @@ -126,6 +126,32 @@ func TestFileSharedEvent(t *testing.T) { } } +func TestFileUnsharedEvent(t *testing.T) { + rawE := []byte(` + { + "type": "file_unshared", + "file_id": "F1234567890", + "file": { + "id": "F1234567890" + } + } + `) + + var e FileUnsharedEvent + if err := json.Unmarshal(rawE, &e); err != nil { + t.Fatal(err) + } + if e.Type != "file_unshared" { + t.Errorf("type should be file_shared, was %s", e.Type) + } + if e.FileID != "F1234567890" { + t.Errorf("file ID should be F1234567890, was %s", e.FileID) + } + if e.File.ID != "F1234567890" { + t.Errorf("file.id should be F1234567890, was %s", e.File.ID) + } +} + func TestGridMigrationFinishedEvent(t *testing.T) { rawE := []byte(` {